Debug
debug
är ett kommando i DOS, MS-DOS, OS/2 och Microsoft Windows (endast x86 versioner, inte x64[1]) vilket programmet debug.exe (eller DEBUG.COM i äldre DOS-versioner) använder sig av.[2] Debug kan användas som en assembler, Disassemblator, eller program för hexadecimal dump som tillåter användaren att interaktivt undersöka datorminnets innehåll (i assembler, hexadecimal eller ASCII), göra ändringar, och selektivt exekvera COM-fil, EXE och andra typer av filer. Det har också flera kommandon som används för att nå en viss disksektor, minnesmappad I/O port och minnesadresser. MS-DOS Debug är skriven för 16-bitars processer och är därför begränsad till 16-bitars datorprogram.[2] FreeDOS Debug har en "DEBUGX"-version som också stödjer 32-bitars DPMI-programs.[3]
Bakgrund
[redigera | redigera wikitext]Traditionellt har alla datorer och operativsystem inkluderat en underhållsfunktion, som används för att undersöka om ett program arbetar korrekt. Debug skrevs av Tim Paterson för att tjäna detta syfte för QDOS. När Paterson började arbeta för Microsoft i början av 1980-talet tog han programmet med sig. Debug var en del av DOS 1.00 och har varit inkluderat i MS-DOS och Microsoft Windows. MS-DOS Debug har flera begränsningar:
- Det kan bara läsa 16-bit register och inte 32-bit (extended) register.
- När kommandot "n" används för att namnge filer lagras filnamnet offset DS:5D till DS:67 vilket betyder att programmet endast kan spara filer i FAT 8.3 filnamnsformat.
- MS-DOS Debug kan bara läsa konventionellt minne,[2] vilket är de första 640 kB i en IBM PC.
Kloner av Debug för 32-bitar, som FreeDOS Debug, har skrivits.[3]
Syntax
[redigera | redigera wikitext]debug [[Drive:][Path] FileName [parameters]]
När Debug körs utan någon parameter visas Debug-prompten, "-". Användaren kan då ange ett av flera kommandon med en eller två bokstäver, inklusive "a" för att gå in i assembler mode, "d" för att gör en hexadecimal dump, "t" för att spåra (trace) och "u" för att disassemblera (unassemble) ett program i minnet.[4] Debug kan också användas som "debug script" interpretator med följande syntax.
debug < FileName
En script-fil kan innehålla Debug-kommandon och assemblerinstruktioner.[5] Denna metod kan användas för att skapa eller editera binärfiler från batchfiler.[2]
Se även
[redigera | redigera wikitext]- Lista på DOS-kommandon
- Edlin är ett annat DOS-verktyg som har skrivits av Tim Paterson.[2]
- SoftICE är en modern avlusare som har ärvt sin syntax från Debug
- debug tutorial: http://www.armory.com/~rstevew/Public/Tutor/Debug/debug-manual.html
Referenser
[redigera | redigera wikitext]- Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia, Debug (command), 16 juni 2013.
Noter
[redigera | redigera wikitext]- ^ Enligt Microsoft Macro Assembler Reference, stöds inte inline assembly för x64.
- ^ [a b c d e] Daniel B. Sedory. ”A Guide to DEBUG”. Arkiverad från originalet den 8 juni 2011. https://web.archive.org/web/20110608133223/http://mirror.href.com/thestarman/asm/debug/debug.htm.
- ^ [a b] Paul Vojta. ”FreeDOS DEBUG README”. Arkiverad från originalet den 24 augusti 2007. https://web.archive.org/web/20070824025835/http://www.japheth.de/Debug/README.TXT.
- ^ ”Microsoft TechNet Debug article”. http://technet.microsoft.com/en-us/library/bb491040.aspx.
- ^ ”Using Debug”. http://kipirvine.com/asm/debug/Debug_Tutorial.pdf.