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.

program Project1;

{$APPTYPE CONSOLE}

procedure TestB;
begin
  writeln('b1');
end;

procedure TestA;
begin
  writeln('a1');
  TestB;
end;

begin
  writeln('a');
  TestA;
  writeln('b');
  writeln('c');
end.

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.

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

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).

love Delphi

O Delphi.cz

Delphi je moderní RAD nástroj podporující tvorbu nativních aplikací pro platformu Win32, Win64, Mac OSX, Linux a na iPhone a Android.

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.

Poslední komentáře

Comment RSS

Dle měsíců