Několik tipů pro debugger - 2 díl

vložil Radek Červinka 30. září 2010 00:28

V minulém díle jsem začal ukazovat pár triků pro ladění a dnes je tu pokračování.

Změna řádku vykonávání

Delphi 2010+ (možná i dříve?). Opět kvalitní program pro ukázky.

    1program Project1;
    2
    3{$APPTYPE CONSOLE}
    4
    5procedure TestB;
    6begin
    7  writeln('b1');
    8end;
    9
   10procedure TestA;
   11begin
   12  writeln('a1');
   13  TestB;
   14end;
   15
   16begin
   17  writeln('a');
   18  TestA;
   19  writeln('b');
   20  writeln('c');
   21end.

Od této verzi se dá měnit aktuální řádek velmi jednoduše. Prostě drapnete kurzor aktuálního řádku a přetáhnete ho kam chcete.

V případě problémů s videm klikněte na plnou verzi.

Jinak v CPU pohledu lze měnit aktuální řádek přes změnu registru EIP a to tak, že kliknete na řádek, kde chcete pokračovat a z popupmenu vyberete volbu New EIP (má i vlastní klávesovou zkratku CTRL+N). No a když už jsme v tom CPU - nyní se dá lehce kopírovat obsah tohoto okna (dříve myslím jen za pomoci CnWizards).

Call stack breakpoint

Celkem příjemné rozšíření ladění od Delphi 2007. Představme si dříve uvedený příklad, kdy jsme zanořeni do TestB a chceme se nastavit breakpoint po návratu ze zanoření (např. v případě rekurze). V takovém případě použijeme právě call stack breakpoint. V okně call stack nastavujete požadovaný breakpoint buďto kliknutím na modrý puntík nebo přes popup menu.

Delphi CallStack Breakpoint

(screenshot je z Delphi XE)

A nezapomeňte na můj článek s tématem integrované vzdálené ladění - remote debugging v Delphi.


Nabízíme Delphi školení na různá témata, primárně ve Vaší firmě.

Tagy: , , , , ,

Praxe

Komentáře

30.9.2010 16:00:03 #

Radim

Změna řádku vykonávání - toto je skutocne super. Ani som netusil ze sa niecoho takeho dozijem.

Vdaka. Radim

Radim

5.10.2010 15:50:54 #

mayer

Zmena vykonavaneho radku pri debugovani - alespon neco.
Pred mnoha lety ve Visual C++ 6.0 v ramci debugovani pribyla novinka v podobe zmeny vykonavaneho radku, rekompilace drobne zmeny + patch na ladenou aplikaci. Byla to neuveritelne chytlava vec, nalezla se chybka, provedla se oprava a ihned se mohlo pokracovat - kdyz to pochopitelne slo. Nutnost znovu startovat aplikaci a opetovne se propracovat k ladenemu mistu me v Delphi hodne vadila.

mayer

5.10.2010 16:20:14 #

radekc

Ve Visual C++ je rekompilace s patchem v podstatě nutnost vzhledem k délce kompilace. Tím neříkám, že bych to neocenil i v Delphi. Každopádně je to krok kupředu.

radekc

Komentování ukončeno

Naše nabídka

Partial English version.

MVP
Ing. Radek Červinka - Embarcadero MVP
profil na linkedin, Twitter:@delphicz

Nabízím placené poradenství a konzultace v oblasti programování a vývoje SW.
Dále nabízíme i vývoj speciálního software na zakázku.

Neváhejte nás kontaktovat (i ohledně reklamy nebo burzy práce).

Pokud chcete podpořit tento server libovolnou částkou, můžete použít PayPal. Moc děkuji.

Delphi Certified Developer

O Delphi.cz

Delphi je jediný moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64 , Mac OSX a na iPhone a Android (s výhledem na další platformy díky FireMonkey) na současném trhu (včetně Windows 8.1).

V současnosti je světová komunita přes dva miliónů vývojářů.

Delphi.cz je nezávislý portál pro uživatele Delphi. Portál není koncipován pro úplné začátečníky, i když i ti se zde nebudou nudit, ale spíše na programátory, kteří již něco znají a chtějí své znalosti dále rozvíjet a sledovat novinky.

Anketa

Poslední komentáře

Comment RSS