vložil Radek Červinka
6. března 2018 00:36
Jak se tak potuluji po zákaznících se školením nebo konzultacemi, tak narážím na opakovanou situaci s FieldByName (případně podobnými funkcemi).
Více...
vložil Radek Červinka
14. listopadu 2017 00:37
Ladění je jako vyšetřování vraždy, kdy je člověk sám vrahem. Některé věci užitečné pro ladění jsem naznačoval dříve, ale možná je vhodné je připomenout.
Jedna z nich je okno Evaluate/modify, kde můžete zadat nejen název proměnné, ale prakticky libovolný řádek kódu Delphi a ten bude spuštěn z kontextu laděného procesu. Tedy např.
Více...
5b912473-ed07-40d3-bf5d-ca07a1fd2312|12|5.0
Tagy: praxe, ladeni
vložil Radek Červinka
4. listopadu 2017 22:41
Je mi jasné, že jsem o tom již kdysi psal, ale opakovaně na školeních, které provádím, narážím na tuto vlastnost IDE, která je pro mnohé překvapením: jednoduchá změna pozice aktuálního řádku provádění kódu. Nejedná se o žádnou novinku, ale o věc cca z verze Delphi 2010.
Aktuální pozice je ukázána šipkou, viz obrázek.
Více...
67228cac-5845-41fc-9143-b4a7c01f85a4|9|4.6
Tagy: ladeni
Praxe
vložil Radek Červinka
11. července 2017 00:07
Když v D2010 byla do Delphi přidána podpora Debug visualizer měl jsem radost. Od té doby žádný nový oficiální nepřibyl, ale aspoň komunita něco přidala. Mimochodem RSP-16946 je feature request o nové vizualizery.
Více...
vložil Radek Červinka
23. února 2015 21:52
Od doby co jsem napsal článek o Delphi unit testování již nějaký čas uplynul. Původní DUnit byl napsáno v době cca Delphi 6 a to odpovídá té době. Proto jsem ocenil, když jsem nalezl DUnitX, který pěkně využívá možností novějších Delphi pro usnadnění práce.
Více...
vložil Radek Červinka
22. ledna 2015 00:05
Nedávno jsem zde ukazoval svůj malý pokus o trasování alokace a dealokace s případným vyhodnocením co se uvolňovalo. A pak jsem narazil na DDDebug - on moji myšlenku dotáhnul až tak, kam jsem si to nedokázal představit. Za pár desítek dolarů dostanete profesionální nástroj na live trasovaní alokací, včetně statistik a výpisu zásobníku pro neuvolněné objekty. Autor nabízí trial demo pro všechny možné verze Delphi.
Více...
vložil Radek Červinka
8. října 2014 19:12
Dnes to bude převážně o nástrojích na které jsem nedávno narazil.
Více...
vložil Radek Červinka
18. března 2014 00:49
Dnes bych rád ukázal jeden prastarý trik, který vám může pomoci při ladění v poslední instanci.
Delphi v normální situaci instaluje globální ovladač výjimek, který odchytává vaše problémy (to je to okno které se zobrazí při výjimce). Tento globální ovladač samozřejmě můžete nahradit vlastním, je na to několik knihoven - podrobněji jsem o tom psal dříve - Exception dialog v Delphi.
Více...
vložil Radek Červinka
4. července 2012 16:01
Pravidelní čtenáři snad chápou, že se tématu ladění věnuji dost podrobně.
Schopnost najít chybu je podle mne to, co odlišuje vynikajícího programátora od zbytku. Postupně jsem se snažil ukazovat různé nástroje a finty jak si práci v této oblasti zjednodušit (počínaje fulldebug mode u FastMM, přes seriál o debuggeru atd).
Dnes ukáži zajímavou možnost a tou je SafeMM.
Více...
vložil Radek Červinka
28. května 2012 23:59
O vzdáleném ladění v Delphi jsem již psal. Jenže s příchodem XE2 se situace zjednodušuje a to hodně a v souvislosti s multiplatformností.
Více...
vložil Radek Červinka
28. ledna 2012 22:55
Pod článkem s anketou ohledně nejvyšší používané verze jsou i dva komentáře stěžující si na problémy s XE2. Leoš si stěžoval na design mód a stabilitu ohledně IBX komponent a JaroB na problémy s portací TinyDB z XE do XE2. Bohužel Leoše v tom asi musím nechat, jelikož IBX komponenty a já se nemáme rádi, ale ohledně TinyDB jsem si řekl, že bych to mohl zkusit.
Výsledkem byl zajímavý možný problém ohledně TStream.
Více...
vložil Radek Červinka
26. července 2011 23:09
Jedna z důležitých věcí je testování. Nevím jak vy, ale já nesnáším opakované testy. Tj. člověk udělá nějaké změny a následně by měl přetestovat úplně všechno. Ale všichni známe jak to dopadne …
A proto je vhodné použít unit testing, tj. nástroj, který za nás bude opakovaně provádět testy, které mu předepíšeme. Pro Delphi se jedná o DUnit, který je navíc součástí vyšších verzí Delphi (tj. od D2007 nebo možná i starších).Více...
vložil Radek Červinka
1. června 2011 23:16
Ladění se zde věnuji často, ale jelikož se některé otázky stále opakují, zde je seznam aplikací, které mi pomáhají a které mohou pomoci i při řešení Vašich problémů.
Možná je to tím, jaký druh programů píši, ale na mém HDD nesmí chybět následující aplikace, které používám jako pomůcky při ladění:
- WireShark
- Process Monitor (nahradil dříve používaný RegMon a FileMon nefungující na Windows 7)
- PortMon (už jen sporadicky)
- Process Explorer
- Sampling Profiler - profiler kódu viz. můj odkazovaný článek
- wget - původně unix program, který např. uloží stáhnutou odpověď z HTTP serveru (např. i včetně hlaviček) do souboru a tam se dá pak prozkoumat co je špatně
- Unlocker - ukáže, kdo zamkl soubor, kdo ho drží a umožní ho odblokovat nebo kopírovat
No a když už jsem v tom tak i následující nástroje
- Dependency Walker - co používá váš program za knihovny a které knihovny používají ty knihovny atd.
- PeInfo, PEiD, StudPe (to ale jen pro případ práce s cizími programy, už jsem je zmiňoval dříve)
- HiJackThis - pokud Vás zajímá co se zavádí ve Windows
a další
Více...
vložil Radek Červinka
10. dubna 2011 23:49
Koncept výjimek v Delphi je dobře vymyšlen a dokonce jsem kdesi četl, že je částečně patentován, jelikož v době Delphi 1 byl naprosto převratný způsobem zpracování za běhu (nějak to souviselo s efektivním odvíjením zásobníku při výjimce, detaily si nepamatuji a snad se nepletu).
Mimochodem Windows podporují výjimky až od 32bit verzí, tj. Delphi 1, které bylo 16bit mělo výjimky vlastní a až Delphi 2 mapují část výjimek na výjimky Windows.
Od Delphi 1 je základem třída Exception, která byla v Delphi 2009 trochu rozšířena - přece jen je to už pár let. Více...
vložil Radek Červinka
3. ledna 2011 22:17
Snad už naposledy malá poznámka ohledně využití FastMM4 při ladění. Tentokráte jak na detekci zápisu mimo alokovanou paměť.Více...