Debugger je specializovaný softwarový nástroj určený k testování, analýze a vyhledávání chyb v počítačových programech. V kontextu programování v jazyce Assembler je naprosto nezbytný, protože umožňuje programátorovi sledovat činnost procesoru na té nejnižší úrovni, krok po kroku.
Zatímco ve vyšších jazycích (C++, Java) se chyby často projevují v logice objektů, v Assembleru může i drobná chyba (např. špatné vyvážení zásobníku) vést k okamžitému pádu celého systému.
Debugger poskytuje přímý vhled do stavu počítače během vykonávání programu:
Kniha Rudolfa Marka zdůrazňuje, že debugger není jen nástroj na opravu chyb, ale také vynikající prostředek pro pochopení architektury PC. Pomocí něj lze vizualizovat:
V knize se pro praktické ukázky využívají především tyto nástroje:
1. Lokalizace: Pomocí breakpointů se určí oblast kódu, kde program vykazuje chybu. 2. Analýza: Krokováním a sledováním registrů se zjistí, která konkrétní instrukce způsobuje neočekávané chování. 3. Oprava: Úprava zdrojového kódu v Assembleru a opětovný překlad pomocí NASM. 4. Verifikace: Opětovné spuštění v debuggeru pro potvrzení, že chyba byla odstraněna.
Zajímavost: Termín „debugging“ (odvšivení) vznikl v počátcích počítačů, kdy skutečný hmyz (můra) způsobil zkrat v relé počítače Mark II. Dnes pod tímto pojmem rozumíme výhradně odstraňování softwarových chyb.
— Viz také: Assembler, Registry procesoru, Zásobník (Stack), NASM překladač