Otázka:
Jaký dopad má neinvazivní ladění?
Thomas Weller
2013-12-13 14:35:12 UTC
view on stackexchange narkive permalink

Jaký dopad má na proces neinvazivní ladění uživatelského režimu s WinDbg? Bude to procesem zjistitelný?

Samozřejmě bych si dokázal představit, že pokud jsou vlákna pozastavena, rozdíly v době provedení funkci lze zjistit porovnáním s „obvyklými“ hodnotami.

Samotný Microsoft neoznačuje větší dopad než pozastavení vláken. Je to pravda?

Dva odpovědi:
peter ferrie
2013-12-14 01:54:34 UTC
view on stackexchange narkive permalink

Je skutečně pravda, že to nemá žádný další dopad. Neinvazivní ladění je jednoduše pozastavení procesu a následné načtení kontextu registru a paměti. Protože v paměti nedochází k žádným změnám, není možné detekovat žádnou fyzickou věc. Nesrovnalosti v načasování, které zavádí, jsou zjistitelné, ale stejné efekty může vyvolat i systém při velkém zatížení, takže detekce je z tohoto důvodu nespolehlivá (ačkoli autorovi detekční rutiny to nemusí vadit).

Samotná přítomnost aktivního debuggeru kdekoli v systému je detekovatelná, nezávisle na metodě použité k ladění. Technika neinvazivního ladění jednoduše porazí některé z běžnějších metod.

Devolus
2013-12-14 17:16:56 UTC
view on stackexchange narkive permalink

Zpracování výjimek může také změnit. V současné době se dívám na nějaký kód, který spouští výjimky způsobující ukončení programu, pokud je spuštěn mimo debugger za správných okolností. Když se to stejné stane uvnitř ladicího programu, je zachycena manipulace s výjimkami a program se chová odlišně (už nepadá, ale také se nechová, jako by běžel mimo debugger).

Výjimky by neměly dělat žádný rozdíl, protože neintruzivní debugger je neuvidí. Spousta aplikací se chová odlišně v přítomnosti připojeného debuggeru. Otázkou je, zda se aplikace, kterou máte, chová stejným způsobem bez jakéhokoli debuggeru ve srovnání s neintruzivním debuggerem (měl by). Pokud existuje rozdíl, možná aplikace detekovala debugger.


Tyto otázky a odpovědi byly automaticky přeloženy z anglického jazyka.Původní obsah je k dispozici na webu stackexchange, za který děkujeme za licenci cc by-sa 3.0, pod kterou je distribuován.
Loading...