Autor Téma: Zakaz debugovani jednotlive knihovny  (Přečteno 1508 krát)

Offline raul

  • Plnoletý
  • ***
  • Příspěvků: 167
  • Karma: 9
    • Verze Delphi: FPC :D
Zakaz debugovani jednotlive knihovny
« kdy: 22-09-2016, 13:01:59 »
Zdar,
da se nejak zakazat ladeni nekterych unit ? Bohuzel i pres F8 mi krokovani leze do SuperObject.pas coz zbytecne zdrzuje. Chyba tam zadna neni, vse ok, ale ladeni se tim desne komplikuje.

Ptal jsem se googla, ale asi hledam blbou frazi.

Diky
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline oxo

  • Guru
  • *****
  • Příspěvků: 656
  • Karma: 37
    • Verze Delphi: Primárně Lazarus, jinak D7 až aktuální
    • Kluug.net
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #1 kdy: 22-09-2016, 13:10:30 »
AFAIK ladění se dá zrušit pouze pro celé balíčky v jejich Options (vyškrtnout Generate debugging info).
Embarcadero Technology Partner, juj. Člen Lazarus týmu, oj.

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1701
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #2 kdy: 22-09-2016, 13:34:22 »
AFAIK ladění se dá zrušit pouze pro celé balíčky v jejich Options (vyškrtnout Generate debugging info).
Pokud mas zdrojovky a chces do nich zasahovat, tak direktivou
Kód: Delphi [Vybrat]
  1. {$D-} nebo {$DEBUGINFO OFF}
  2.  
lze ladeni te unit potlacit.

Offline raul

  • Plnoletý
  • ***
  • Příspěvků: 167
  • Karma: 9
    • Verze Delphi: FPC :D
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #3 kdy: 22-09-2016, 13:52:40 »
pf1957: Zkusim diky.

oxo: to bych chapal, ale je divne ze pri F8 to vleze do metod a i metod volanych z metod v ramci SuperObject.pas. V mem kodu je F7 dovnitr, F8 zvenku, takze F8 bych chapal, ze do unity nepoleze pokud tam neni BP nebo expception treba.


Edit : Tak po pridani {$D-} i {$DEBUGINFO OFF} stejne F8 leze do dane knihovny. Naproti tomu moje metody (v jinem souboru) s F8 funguji jak maji. Btw> Neni podstatne, ze F7 misto F8 se deje na radcich podobnych tomuto :

  Enqueue(o.S['image.filename']);

tzn jako parametry ?
« Poslední změna: 22-09-2016, 14:24:33 od raul »
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline raul

  • Plnoletý
  • ***
  • Příspěvků: 167
  • Karma: 9
    • Verze Delphi: FPC :D
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #4 kdy: 22-09-2016, 15:12:14 »
Pripadne jestli neni rozdil kdyz parametr je interface na rozdil od tridy apod. o v radku vyse je interface. V metode :
function TSuperObject.GetS(const path: SOString): SOString;
var
  obj: ISuperObject;
begin
  obj := GetO(path);
  if obj <> nil then
    Result := obj.AsString else
    Result := '';
end;
 
Pak F8 vleze do obj.AsString (obj je opet interface).
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline raul

  • Plnoletý
  • ***
  • Příspěvků: 167
  • Karma: 9
    • Verze Delphi: FPC :D
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #5 kdy: 23-09-2016, 19:26:30 »
Nikdo ??
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline Daniel_Andrascik

  • Hrdina
  • ****
  • Příspěvků: 397
  • Karma: 15
    • Verze Delphi: D2007, XE3
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #6 kdy: 23-09-2016, 21:14:12 »
Ak das do jednotky

Kód: [Vybrat]
{$D-} nebo {$DEBUGINFO OFF}
Tak ti do nej nemoze debugger vliezt. Ak ano potom to znamena ze niekde na nizsom riadku sa debuginfo zase podobnym zapisom zapne. Pripadne skontroluj ci v superobject nepouziva *.inc subory ci v nich nie je uvedene {$D+} alebo {$DEBUGINFO ON}

Offline raul

  • Plnoletý
  • ***
  • Příspěvků: 167
  • Karma: 9
    • Verze Delphi: FPC :D
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #7 kdy: 23-09-2016, 23:58:49 »
Ak das do jednotky

Kód: [Vybrat]
{$D-} nebo {$DEBUGINFO OFF}
Tak ti do nej nemoze debugger vliezt. Ak ano potom to znamena ze niekde na nizsom riadku sa debuginfo zase podobnym zapisom zapne. Pripadne skontroluj ci v superobject nepouziva *.inc subory ci v nich nie je uvedene {$D+} alebo {$DEBUGINFO ON}

Zkusil jsem samozrejme vyhledat at uz {$+} ci {$DEBUGINFO ON} (prolezl jsem vsechny {$xxx) a inc tam zadny neni. Chapu ze nemuze (bacha na nemuze, spis by nemel - viditelne), ale vleze.. Pokud se nejaky duvod nenajde, zkusim vytvorit nejakou jednotku s interfacy a zkusit to u ni. Nic jineho me totiz nenapada jako rozdil proti jinemu kodu. Divne je samozrejme taky to, ze tam vleze pres F8 - u F7 bych to chapal a chapal bych i zamezeni pres {$D-} (kdyz neni debuginfo, tezko tam muzu debugovat). Ovsem fakt je dulezite i to, ze pres F8.. Pokud pouziju shift+F8 - step out - tak tam samozrejme neleze, ale trochu pak postrada smysl krokovani. Pokud dam za dotycne radky BP, a pustim F9 taky tam - logicky - nezkoci, ale kod jen spusti. Ovsem chovani F8 naprosto nechapu.

Zkusil jsem jeste juknout do bugreportu a ejhle : http://bugs.freepascal.org/view.php?id=14399 (ne zrovna mlady..)

Takze reseni : Zkusil jsem jeste ponastavovat debuger apod a ejhle : Project Options -> Compiler Options -> Debugging -> Type of debug info - vychozi je Automatic. At nastavim Dwarf ci Dwarf2 prestane to delat a nakonec spravne vezme v potaz i {$D-} a ignoruje dkonce i step into.
« Poslední změna: 24-09-2016, 00:29:18 od raul »
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline Radek Červinka

  • Administrátoři
  • Padawan
  • *****
  • Příspěvků: 1651
  • Karma: 68
    • Verze Delphi: D5,D2007, DXE, DXE2 + 2 poslední (teď XE8 a XE10)
    • O Delphi v češtině
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #8 kdy: 28-09-2016, 08:19:41 »
Existuje IDE rozšíření http://www.uweraabe.de/Blog/2015/05/08/selective-debugging/, kde si jednoduše naklikáš, které jednotky mají mít debug info - přičemž se na disku nic nemění - vše je uloženo v projektu. Včetně systemových jednotek.
Embarcadero MVP - Czech republic

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1701
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #9 kdy: 28-09-2016, 10:22:33 »
Existuje IDE rozšíření http://www.uweraabe.de/Blog/2015/05/08/selective-debugging/, kde si jednoduše naklikáš, které jednotky mají mít debug info - přičemž se na disku nic nemění - vše je uloženo v projektu. Včetně systemových jednotek.
Jestli jsem to dobre pochopil, tak se to tyka jen filtru na jednotky, ktere nekdo predem prelozil do $(BDS)\lib\$(platform)\debug, takze de facto jen zalezitosti, nainstalovane s Delphi tj. vytvori to nejaky novy \debug folder a do nej nakopiruje jen jednotky, ktere sis z puvodniho vybral a upravi cestu k nemu.


Offline raul

  • Plnoletý
  • ***
  • Příspěvků: 167
  • Karma: 9
    • Verze Delphi: FPC :D
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #10 kdy: 28-09-2016, 10:55:48 »
Vyse uvedeny problem se tykal jen method interface, neobjektu, coz byl pred lety bug a vyresil se tim novym Dwarf2 - automatic vybiral dwarf, takze vyreseno. A btw, bavime se o FPC/Lazarus, ne o delphi. To rozsireni ma kompatibilitu s delphi. Nicmene diky.
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

Offline pf1957

  • Padawan
  • ******
  • Příspěvků: 1701
  • Karma: 70
    • Verze Delphi: D2007, XE3, DX10
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #11 kdy: 28-09-2016, 11:41:51 »
A btw, bavime se o FPC/Lazarus, ne o delphi.
Jojo, to kdybych si vsiml vcas, ze je rec o nejakejch trpaslicich ;-), tak bych na to vubec nereagoval ani s tim $D-. Ale ctu to pres RSS a tam zadna takova informace neni a kdyz dam odpoved, tak abych se dival po bread crumbs, ktery jsou navic videt, jen pokud existuje ve threadu malo odpovedi, jinak se musi zarolovat se strankou...
« Poslední změna: 28-09-2016, 11:43:25 od pf1957 »

Offline raul

  • Plnoletý
  • ***
  • Příspěvků: 167
  • Karma: 9
    • Verze Delphi: FPC :D
Re:Zakaz debugovani jednotlive knihovny
« Odpověď #12 kdy: 28-09-2016, 12:08:51 »
Jo jo, trpaslici jsou svine svinuty :D
Lazarus 1.6.3:), FPC, Intel/Arm, Windows/Linux

 

S rychlou odpovědí můžete používat BB kódy a emotikony jako v běžném okně pro odpověď, ale daleko rychleji.

Upozornění: do tohoto tématu bylo naposledy přispěno před 120 dny.
Zvažte prosím založení nového tématu.

Jméno: E-mail:
Ověření:
Datový typ v Delphi, který má True a False: