vložil Radek Červinka
21. února 2010 23:24
Sem tam je vhodné provádět ladění přímo na počítači klienta, protože na vývojovém počítači nejde problém nasimulovat. Samozřejmě v takovýchto případech není vhodné (a ani často možné) instalovat Delphi na počítač klienta a proto Delphi nabízejí možnost vzdáleného ladění (Remote debugging). Jak tedy na to?
Ukážeme si to na Delphi 2010 (nutný service pack 4 a 5 - opraveny některé problémy), ale remote debugging je podporován i na starších Delphi, jen se mohou lišit názvy souborů (viz dále).
V prvním kroku na cílovém počítači musíme nainstalovat podporu pro ladění. Z adresáře Delphi zkopírujeme na cílový počítač tyto soubory (platí pro Delphi 2010 - verze Delphi je 14, tj. patřičně upravte názvy souborů podle Vaší verze Delphi - pozor podle některých ohlasů je v Delphi 2005 a 2006 slabší podpora). Mimochodem na instalačním médiu bývá i instalátor pro remote debugger, ale takto je to univerzální.
bccide.dll
bordbk140.dll
bordbk140N.dll
comp32x.dll
DCC140.dll
rmtdbg140.exe
Nyní je třeba ještě soubory zaregistrovat:
regsvr32 bordbk140.dll
regsvr32 bordbk140n.dll
Tak máme hotovo (nutno samozřejmě jen poprvé) a můžeme jít ladit.
Nejdříve na cílovém počítači spustíme podporu pro remote debugger (rmtdbg140.exe), který byl předtím zkopírován a po spuštění se nám zobrazí ikona v tray.
Nyní u projektu zapneme Remote debug symbols a pokud nemáme tak i Debug information. Tím prvním se nám při kompilaci budou vytvářet i RSM soubory.
Přeloženou binárku spolu s rsm soubory překopírujeme na počítač klienta. A v menu Run zvolíme možnost Load Process …
… a v záložce Remote vyplníme patřičné pole (viz obrázek - adresáře jsou z pohledu na cílovém počítači).
Nyní jen klikneme na Load a program se zastaví na prvním řádku programu (tedy nejčastěji na první řádce kódu v dpr souboru) a můžete nastavit breakpointy nebo prostě dělat co potřebujete jako při normálním ladění. A to je vše.
V případě problémů s komunikací je vhodné prověřit komunikaci mezi počítači třeba pomocí ping (a zkontrolovat firewall, různé rádobychytré antiviry a pod.).