Debug

Från Wikipedia
Hoppa till: navigering, sök

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.[3] 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.[4]

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 döpa filer lagras filnamnet offset DS:5D till DS:67 vilket betyder att programmet kan bara 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.[4]

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.[5] Debug kan också användas som "debug script" tolk (interpreter]] med följande syntax.

debug < FileName 

En script-fil kan innehålla Debug-kommandon och assemblerinstruktioner.[3] Denna metod kan användas för att skapa eller editera binärfiler från batchfiler.[2]

Se även[redigera | redigera wikitext]

Referenser[redigera | redigera wikitext]

Den här artikeln är helt eller delvis baserad på material från engelskspråkiga Wikipedia, Debug (command), 2013-06-16.

Noter[redigera | redigera wikitext]

  1. ^ Enligt Microsoft Macro Assembler Reference, stöds inte inline assembly för x64.
  2. ^ [a b c d e] Daniel B. Sedory. ”A Guide to DEBUG”. http://mirror.href.com/thestarman/asm/debug/debug.htm. 
  3. ^ [a b] ”Using Debug”. http://kipirvine.com/asm/debug/Debug_Tutorial.pdf. 
  4. ^ [a b] Paul Vojta. ”FreeDOS DEBUG README”. http://japheth.de/Debug/README.TXT. 
  5. ^ ”Microsoft TechNet Debug article”. http://technet.microsoft.com/en-us/library/bb491040.aspx. 

Externa länkar[redigera | redigera wikitext]