กลับไปหน้าบทความ

อ่าน 7 นาที

ดีบัก (คำสั่ง)

ดีบักเกอร์ แบบบรรทัดDEBUG.EXEเป็นคำสั่งภายนอกในMS-DOSและระบบปฏิบัติการที่เข้ากันได้OS/2 และ Windows เวอร์ชัน 16 บิตและ 32 บิต

ดีบัก (คำสั่ง)

DEBUG.COM (MS-DOS <= 2.0), DEBUG.EXE (MS-DOS >= 3.x)
ผู้เขียนต้นฉบับทิม แพเตอร์สัน
นักพัฒนาไมโครซอฟต์ , ไอบีเอ็ม , ดิจิทัล รีเสิร์ช , โนเวลล์ , คาลเดรา
เขียนเป็นภาษาแอสเซมบลี x86
ระบบปฏิบัติการMS-DOS , OS/2 , Windows
พิมพ์ดีบักเกอร์
ใบอนุญาตMS-DOS v2.0, FreeDOS: MIT OS/2, Windows: ซอฟต์แวร์ที่เป็นกรรมสิทธิ์
เว็บไซต์ดีบัก

ดีบักเกอร์ แบบบรรทัดDEBUG.EXEเป็นคำสั่งภายนอกในMS-DOSและระบบปฏิบัติการที่เข้ากันได้OS/2 และ Windows เวอร์ชัน 16 บิตและ 32 บิต[ 1 ]

โปรแกรม DEBUG สามารถทำหน้าที่เป็นโปรแกรมประกอบโค้ด (assembler) , โปรแกรมแยกโค้ด (disassembler ) หรือ โปรแกรมดัมพ์เลขฐานสิบหก ( hex dump ) ช่วยให้ผู้ใช้สามารถตรวจสอบเนื้อหาในหน่วยความจำ แบบโต้ตอบ (ในรูปแบบภาษาแอสเซมบลีเลขฐานสิบหกหรือASCII ) ทำการเปลี่ยนแปลง และเลือกเรียกใช้ ไฟล์ประเภท COM , EXEและไฟล์อื่นๆ ได้ นอกจากนี้ยังมีคำสั่งย่อยหลายคำสั่งที่ใช้ในการเข้าถึง เซกเตอร์ ของดิสก์พอร์ต I/Oและที่อยู่หน่วยความจำ เฉพาะอีก ด้วย

ภาพรวม

DEBUG.COM(รวมถึงคำสั่งอื่นๆ) ในIBM PC DOS 1.0
คำสั่งMicrosoft Windows 95DEBUG.EXE

ตามธรรมเนียมแล้ว คอมพิวเตอร์และระบบปฏิบัติการทุกเครื่องจะมีฟังก์ชันการบำรุงรักษา ซึ่งใช้เพื่อตรวจสอบว่าโปรแกรมทำงานได้อย่างถูกต้องหรือไม่ เดิมทีTim Paterson เขียนโปรแกรม DEBUG ขึ้นมา เพื่อจุดประสงค์นี้ใน86-DOSเมื่อ Paterson เริ่มทำงานให้กับ Microsoft ในช่วงต้นทศวรรษ 1980 เขาได้นำโปรแกรมนี้มาด้วย DEBUG เป็นส่วนหนึ่งของDOS 1.00และถูกรวมอยู่ในMS-DOS / PC DOSและMicrosoft WindowsDEBUG.COM บางเวอร์ชัน เดิมที ไฟล์ปฏิบัติการมีชื่อว่า แต่ได้เปลี่ยนชื่อเป็น DEBUG.EXEใน MS-DOS 3.2 [ 2 ]

Windows XPและเวอร์ชันที่ใหม่กว่ารวมDEBUGระบบย่อย MS-DOSเพื่อรักษาความเข้ากันได้ของ MS-DOS คำสั่ง DOS 16 บิตไม่สามารถใช้งานได้ในWindows เวอร์ชัน64 บิต[ 3 ]

โปรแกรมดีบัก MS-DOS/PC DOS มีข้อจำกัดหลายประการ:

แพ็คเกจ DEBUG ที่ได้รับการปรับปรุงประกอบด้วยคำสั่ง DEBUG ในNovell DOS 7 , OpenDOS 7.01และDR-DOS 7.02ขึ้นไป ซึ่งเป็นการนำSymbolic Instruction Debugger SID/SID86 เดิมของDigital Research มาเขียนใหม่ [ 4 ]ซึ่งมาพร้อมกับDR DOSเวอร์ชัน ก่อนหน้า [ 5 ] [ 6 ] [ 7 ]โปรแกรมนี้เข้ากันได้อย่างสมบูรณ์กับไวยากรณ์บรรทัดคำสั่ง DEBUG ของ MS-DOS/PC DOS แต่มีการปรับปรุงเพิ่มเติมมากมาย รวมถึงการรองรับ opcode 16 บิตและ 32 บิตจนถึง Pentium โหมดขยาย (/X) พร้อมคำสั่งและโหมดย่อยเพิ่มเติมอีกหลายสิบรายการ ไวยากรณ์บรรทัดคำสั่งที่ได้รับการปรับปรุงอย่างมากพร้อมมาโครที่ผู้ใช้กำหนดได้ และ สิ่งอำนวยความสะดวก ในการดีบักเชิงสัญลักษณ์พร้อมรีจิสเตอร์ที่มีชื่อตารางสัญลักษณ์ ที่โหลด การดำเนินการทางคณิตศาสตร์ และการแปลงฐานรวมถึง ตัวแยกส่วนประกอบ ที่มีคำอธิบายประกอบ[ 8 ] [ 7 ]บางเวอร์ชันยังใช้DPMSเพื่อทำหน้าที่เป็นดีบักเกอร์โหมดป้องกันแบบ "โหมดซ่อนตัว" [ 9 ]

DEBUG เวอร์ชัน FreeDOS ได้รับการ พัฒนาโดย Paul Vojta และได้รับอนุญาตภายใต้MIT License [ 10 ]

มี เวอร์ชัน "DEBUGX" โคลน 32 บิตที่รองรับ โปรแกรม DPMI 32 บิต ด้วยเช่นกัน[ 11 ] Andreas "Japheth" Grech ผู้เขียนส่วนขยาย HX DOSได้พัฒนาเวอร์ชัน DEBUG ที่ได้รับการปรับปรุงตั้งแต่ 0.98 ถึง 1.25 และ Vernon C. Brooks อดีตนัก พัฒนา PC DOSได้เพิ่มเวอร์ชัน 1.26 ถึง 1.32 [ 12 ]

ไวยากรณ์

ดีบัก [[ไดรฟ์:][พาธ] ชื่อไฟล์ [พารามิเตอร์]]

เมื่อเริ่ม DEBUG โดยไม่มีพารามิเตอร์ใดๆ ข้อความแจ้ง DEBUG หรือ "-" จะปรากฏขึ้น จากนั้นผู้ใช้สามารถป้อนคำสั่งย่อยหนึ่งหรือสองตัวอักษรได้หลายคำสั่ง รวมถึง "A" เพื่อเข้าสู่โหมดแอสเซมเบลอร์ "D" เพื่อทำการดัมพ์เลขฐานสิบหก "T" เพื่อติดตาม และ "U" เพื่อถอดประกอบ (แยกส่วน) โปรแกรมในหน่วยความจำ[ 13 ] DEBUG ยังสามารถใช้เป็นตัวแปล "สคริปต์ DEBUG" โดยใช้ไวยากรณ์ต่อไปนี้

ดีบัก <ชื่อไฟล์> 

ไฟล์สคริปต์อาจมีคำสั่งย่อย DEBUG และคำสั่งภาษาแอสเซมบลี[ 14 ]วิธีนี้สามารถใช้เพื่อสร้างหรือแก้ไขไฟล์ไบนารีจากไฟล์แบตช์ได้[ 2 ]

การดีบักคำสั่งย่อย

ต่อไปนี้คือรายการคำสั่ง DEBUG ที่มีให้ใช้งานจาก DEBUG.EXE ใน MS-DOS 6.22 ผ่านทาง?คำสั่ง

ประกอบ A [ที่อยู่] เปรียบเทียบที่อยู่ช่วง C ดัมพ์ D [ช่วง] ป้อนที่อยู่อีเมล [รายการ] กรอกรายการช่วง F go G [=ที่อยู่] [ที่อยู่ต่างๆ] ค่าเลขฐานสิบหก H ค่า1 ค่า2 อินพุตพอร์ต I โหลด L [ที่อยู่] [ไดรฟ์] [เซกเตอร์แรก] [หมายเลข] ย้ายที่อยู่ช่วง M ชื่อ N [ชื่อพาธ] [arglist] เอาต์พุต O พอร์ตไบต์ ดำเนินการต่อ P [=ที่อยู่] [หมายเลข] ออกจาก Q ลงทะเบียน R [ลงทะเบียน] ค้นหารายการช่วง S ติดตาม T [=ที่อยู่] [ค่า] ถอดประกอบ U [ช่วง] เขียน W [ที่อยู่] [ไดรฟ์] [เซกเตอร์แรก] [หมายเลข] จัดสรรหน่วยความจำเพิ่มเติม XA [จำนวนหน้า] ยกเลิกการจัดสรรหน่วยความจำที่ขยายแล้ว XD [แฮนด์เดิล] แผนที่หน้าหน่วยความจำขยาย XM [Lpage] [Ppage] [handle] แสดงสถานะหน่วยความจำที่ขยายแล้ว XS 

คำสั่ง R แสดงสถานะและค่าของรีจิสเตอร์ปัจจุบัน

AX=0000 BX=0000 CX=0000 DX=0000 SP=FFEE BP=0000 SI=0000 DI=0000 DS=2A63 ES=2A63 SS=2A63 CS=2A63 IP=0100 NV UP EI PL NZ NA PO NC 2A63:0100 0F DB 0F 

ในขณะที่คำสั่ง D แสดงค่าหน่วยความจำปัจจุบัน โดยแสดงทั้งค่าเลขฐานสิบหกและค่า ASCII

2A63:0100 0F 00 B9 8A FF F3 AE 47-61 03 1F 8B C3 48 12 B1 .......Ga....H.. 2A63:0110 04 8B C6 F7 0A 0A D0 D3-48 DA 2B D0 34 00 52 2A ........H.+.4.R\* 2A63:0120 00 DB D2 D3 E0 03 F0 8E-DA 8B C7 16 C2 B6 01 16 ................ 2A63:0130 C0 16 F8 8E C2 AC 8A D0-00 00 4E AD 8B C8 46 8A ..........N...F. 2A63:0140 C2 24 FE 3C B0 75 05 AC-F3 AA A0 0A EB 06 3C B2 .$.<.u.........<. 2A63:0150 75 6D 6D 13 A8 01 50 14-74 B1 BE 32 01 8D 8B 1E อืม...Pt.2.... 2A63:0160 8E FC 12 A8 33 D2 29 E3-13 8B C2 03 C3 69 02 00 ....3.)......i.. 2A63:0170 0B F8 83 FF FF 74 11 26-01 1D E2 F3 81 00 94 FA .....t.&........ 

และUnassemble จะแสดงการพยายามถอดประกอบหน่วยความจำเดียวกัน

2A63:0100 0F DB 0F 2A63:0101 00B98AFF เพิ่ม [BX+DI+FF8A],BH 2A63:0105 F3 REPZ 2A63:0106 AE SCASB 2A63:0107 47 INC DI 2A63:0108 61 DB 61 2A63:0109 031F เพิ่ม BX,[BX] 2A63:010B 8BC3 MOV AX,BX 2A63:010D 48 DEC AX 2A63:010E 12B1048B เอดีซี ดีเอช,[BX+DI+8B04] 2A63:0112 C6F70A MOV BH,0A 2A63:0115 0AD0 หรือ DL,AL 2A63:0117 D348DA ROR WORD PTR [BX+SI-26],CL 2A63:011A 2BD0 SUB DX,AX 2A63:011C 3400 XOR AL,00 2A63:011E 52 PUSH DX 2A63:011F 2A00 SUB AL,[BX+SI] 

ใช้เพื่อวัตถุประสงค์ที่ไม่เกี่ยวข้องกับการดีบัก

โปรแกรม DEBUG มีประโยชน์สำหรับการแก้ไขไฟล์ไบนารีในสภาพแวดล้อมที่มีเพียงระบบปฏิบัติการ DOS ติดตั้งอยู่โดยไม่มีโปรแกรมอื่นใด นอกจากนี้ยังสามารถใช้แก้ไขเซกเตอร์ของดิสก์ ซึ่งเป็นวิธีหนึ่งในการกำจัดไวรัสในเซกเตอร์บูตได้อีกด้วย

ความพร้อมใช้งาน

แม้ว่าเอกสารทางเทคนิคสำหรับคำสั่ง DEBUG จะถูกลบออกไปพร้อมกับการเปิดตัว MS-DOS 3.3 แต่คำสั่งนี้ยังคงอยู่ในชุดการแจกจ่ายมาตรฐาน ซึ่งแตกต่างจากสิ่งที่ทำกับEXE2BIN [ 15 ]

ระบบปฏิบัติการอื่นๆ

ระบบปฏิบัติการIntel ISIS-II [ 16 ]และiRMX 86 , [ 17 ] DEC TOPS-10 [ 18 ]และTOPS-20 , [ 19 ] THEOS/OASIS , [ 20 ] Zilog Z80-RIO , [ 21 ] Stratus OpenVOS , [ 22 ] PC-MOS , [ 23 ]และAROS [ 24 ]ยังมีDEBUGคำสั่ง อีกด้วย

ดูเพิ่มเติม

  • การดีบัก | เอกสารของ Microsoft
  • การใช้งาน DEBUG แบบโอเพนซอร์สที่มาพร้อมกับ MS-DOS เวอร์ชัน 2.0
ดึงข้อมูลมาจาก " https://en.wikipedia.org/w/index.php?title=Debug_(command)&oldid=1359396768 "

สรุปเนื้อหา

ข้อมูลสำคัญจากบทความ

ข้อมูลสำคัญเกี่ยวกับ ดีบัก (คำสั่ง)

ดีบักเกอร์ แบบบรรทัดDEBUG.EXEเป็นคำสั่งภายนอกในMS-DOSและระบบปฏิบัติการที่เข้ากันได้OS/2 และ Windows เวอร์ชัน 16 บิตและ 32 บิต

ภาพรวม

ตามธรรมเนียมแล้ว คอมพิวเตอร์ และ ระบบปฏิบัติการ ทุกเครื่องจะมีฟังก์ชันการบำรุงรักษา ซึ่งใช้เพื่อตรวจสอบว่าโปรแกรมทำงานได้อย่างถูกต้องหรือไม่ เดิมที Tim Paterson เขียนโปรแกรม DEBUG ขึ้นมา เพื่อจุดประสงค์นี้ใน 86-DOS เมื่อ Paterson เริ่มทำงานให้กับ Microsoft...

ไวยากรณ์

เมื่อเริ่ม DEBUG โดยไม่มีพารามิเตอร์ใดๆ ข้อความแจ้ง DEBUG หรือ "-" จะปรากฏขึ้น จากนั้นผู้ใช้สามารถป้อนคำสั่งย่อยหนึ่งหรือสองตัวอักษรได้หลายคำสั่ง รวมถึง "A" เพื่อเข้าสู่โหมดแอสเซมเบลอร์ "D" เพื่อทำการ ดัมพ์เลขฐานสิบหก "T" เพื่อติดตาม และ "U" เพื่อถอดประกอบ...

การดีบักคำสั่งย่อย

ต่อไปนี้คือรายการคำสั่ง DEBUG ที่มีให้ใช้งานจาก DEBUG.EXE ใน MS-DOS 6.22 ผ่านทาง ? คำสั่ง