DEBUG調試命令介紹_第1頁
DEBUG調試命令介紹_第2頁
DEBUG調試命令介紹_第3頁
DEBUG調試命令介紹_第4頁
DEBUG調試命令介紹_第5頁
全文預覽已結束

下載本文檔

版權說明:本文檔由用戶提供并上傳,收益歸屬內容提供方,若內容存在侵權,請進行舉報或認領

文檔簡介

DEBUG調試命令介紹1.主要調試命令:反匯編命令U:將存儲器中的二進制數據翻譯成較有意義的助記符形式,以幫助理解,如圖1.5所示。一般常用以下三種格式:a)-U/:從當前IP處開始,對連續約32字節內容反匯編。如對TEST.EXE,剛裝入DEBUG時的IP=OOOO,則在輸入U命令后有如下顯示:-U/13C2:0000B402MOVAH,0213C2:0002B241MOVDL,4113C2:0004CD21INT2113C2:0006B44CMOVAH,4C13C2:0008CD21INT2113C2:000A8B4606MOVAX,[BP+06]13C2:00208B07MOVAX,[BX]阿命令提示符-DEBUGTEST.EXE-u13C213C213C213C213C213C213C213C213C213C213C213C213C213C213C213C200000002000400060008000A000D0Q100011001400160017001A001C0Q1F0020-u13C213C213C213C213C213C213C213C213C213C213C213C213C213C213C213C200000002000400060008000A000D0Q100011001400160017001A001C0Q1F0020B402B241CD21B44CCD218B46068B56082639470A75092639570C7503E909FF268B07UUTUTUU:PZ:PZP:UOONONOOSMNSMNMSOMMIMIMMECJECJJEMAH,02DL,4121AH,4C21AX,[BP+061DX,EBP+081[BX+0AKAK001F[BX+0CKDK001FFF28fiil,[BX]圖1.5反匯編命令的執行結果在上例中,13C2:0000表示CS:IP的內容(其中CS的值是動態值);B402代表該處存放的二進制數據,亦即指令MOVAH,02H的機器代碼;當連續約32字節的數據反匯編完后,重新回到DEBUG提示符“-”下,如果再鍵入U命令,則將繼續對后面的內存區反匯編。特別應該注意的是,由于反匯編命令針對內存區的二進制數據,而被調試程序僅占內存區的某一部分,故反匯編出來的內容并非全是被調試程序的代碼,如上例中13C2:000A單元以后的部分,顯然不是TEST.EXE的內容。另外還需注意,DEBUG默認使用十六進制。-U0123/:從指定的IP=0123處開始,對連續約32字節內容反匯編。-U01230143/:從指定的IP=0123處開始反匯編,直至指定的0143處結束。顯示寄存器命令R:顯示或修改寄存器的內容,如圖1.6所示。一般常用以下形式:a) -R/:顯示所有寄存器當前的內容及當前將執行的指令。如對TEST.EXE,在程

序運行之前,鍵入R命令:-R/AX=0000BX=0000CX=000ADX=0000SP=0000BP=0000SI=0000DI=0000DS=13B2ES=13B2SS=13C2CS=13C2IP=0000NVUPEIPLNZNAPONC13C2:0000 B402MOVAH,02圖1.6顯示寄存器命令執行結果在顯示寄存器內容時,狀態標志寄存器F表示成各個分離的標志位,其意義如下表1.1所示:表1.1標志寄存器的標志為含義溢出方向中斷符號零輔助進位奇偶進位0NVUPDIPLNZNAPONC1OVDNEINGZRACPECYb)-RAX/:顯示指定的AX寄存器當前的內容,并等待鍵入新值;如果不作修改,可直接回車。如:-RAX/AX0000:4321/c)-RF/:顯示標志寄存器F各個標志位的內容,并等待鍵入新的標志位;如果不作修改,可直接回車。如:-RF/NVUPEIPLNZNAPONC-ZR/運行命令G:使程序在DEBUG控制下運行,一般有全程、斷點運行兩種方式。a)-G/:控制程序由當前IP處運行,直至程序結束。如果當前IP為初始值,其作用則相當于直接在DOS下運行程序,一般用于快速觀察程序的運行情況,如圖1.7所示。

-GAProgramterminated-G0008AAX=4C41DS=13B2 ES=13B213C2-GAProgramterminated-G0008AAX=4C41DS=13B2 ES=13B213C2:0008CD21normallijCX=000ASS=13C2INI41C221SP=0000BP=0000SI=0000DI=0000IP=0008 NUUPElPLZRNAPONC圖1.7運行命令執行結果b)-G0008/:控制程序由當前IP處運行,直至指定的斷點IP=0008H處,程序暫停,顯示各個寄存器的當前值及斷點處指令,然后返回DEBUG提示符“-”下。如對TEST.EXE,若想觀察字符串顯示的入口參數是否設置好,則可以斷點運行至0008處:-G0008/AX=4C41BX=0000CX=000ADX=0041SP=0000BP=0000SI=0000DI=0000DS=13B2ES=13B2SS=13C2CS=13C2IP=0008NVUPEIPLZRNAPONC13C2:0008CD21 INT21斷點一般選取在需要觀察的地方,當程序停下來后,可以根據各方面的情況(如寄存器、緩沖區、標志等)來判斷程序是否運行正確。單步命令T:控制程序運行一條指令后暫停,顯示各個寄存器的當前值及斷點處指令,然后返回DEBUG提示符“-”下,如圖1.8所示。例如對TEST.EXE,若當前IP為初始值,則鍵入T命令后有如下顯示:-T/AX=0200BX=0000CX=000ADX=0000SP=0000BP=0000SI=0000DI=0000DS=13B2ES=13B2SS=13C2CS=13C2IP=0002NVUPEIPLNZNAPONC13C2:0002B241AX=0200BX=0000CX=000ADX=0000SP=0000BP=0000SI=0000DI=0000DS=13B2ES=13B2SS=13C2CS=13C2IP=0002NVUPEIPLNZNAPONC13C2:0002B241MOVDL,41圖1.8單步命令執行結果單步命令一般用于需對程序運行作仔細分析的地方,如判斷分支轉移、觀察運算結果等。若能綜合運用斷點及單步指令,則可大大提高DEBUG調試的速度及效率。但應注意,當IP指針位于INT21H—類指令處時,執行T命令將會使程序進入該功能調用子程序中,因此,這種情況下最好不用T命令,而用斷點運行命令跳過該類功能調用指令。修改存儲單元命令E:—般常用以下二種形式:a)-E[起始地址][內容表]/:按內容表的內容修改從起始地址開始的多個存儲單元內容,即用內容表指定的內容來代替存儲單元當前內容,如圖1.10所示。例如:一EDS:0100ABC1234表示從DS:0100為起始單元的連續五個字節單元內容依次被修改為'A'、'B'、'C'、12H、34H。阿命令提示符-DEBUGTEST.EXE-EDS:0100-EDS:011013B2:0110-DDS:010013B2:01QQ13B2阿命令提示符-DEBUGTEST.EXE-EDS:0100-EDS:011013B2:0110-DDS:010013B2:01QQ13B2:011013B2:012013B2:013013B2:014013B2:015013B2:016013B2:B170-DDS:010013B2:010013B2:011013B2:0120JABCJ,12,3426.55 39.6645764D4B45375525E0372ABB65A22A10881E2710376CBB4037442F8808442676DEAF264604358F046215BB2F4D115B45882F070458192ED3BA19200F3C88204699658DB28825F5B4264C-CD39-5746-F846-F889-478B-EC03-FEFF-2A4C-CD39-571C99630F2088088F21

0C8601F60D86029AF781026FF88B156F5FFFB8175FB9FE8621B9801505708069947704690EEC554C0E63AA92676340FF800A40B5666CE8B587552E7387-|n|x|圖1.10修改存儲單元命令執行結果b)-E[地址]/:逐個修改指定地址單元的當前內容。女口:一EDS:0110/13B2:011026.55其中13B2:0110單元原來的值是26H,55H為輸入的修改值。若只修改一個單元的內容,這時按回車鍵即可;若還想繼續修改下一個單元內容,此時應按空格鍵,就顯示下一個單元的內容,需修改就鍵入新的內容,不修改再按空格跳過,如此重復直到修改完畢,按回車鍵返回DEBUG“-”提示符。如果在修改過程中,將空格鍵換成按“-”鍵,貝I」表示可以修改前一個單元的內容。顯示內存命令D:以十六進制及ASCII兩種方式顯示內存區的二進制數據,通常用來觀察數據段內的緩沖區內容。一般常用以下二種形式:a)-D/:從0000單元開始,連續顯示128個內存單元的內容,如果繼續鍵入D命令,貝繼續顯示后128個單元內容。例如:-DDS:0100/13B2:0100414243123421B44C-CD218B46068B5608ABC.4!.L.!.F..V.13B2:01105566470A75092639-570C7503E909FF26UFG.u.&9W.u????&13B2:01707DFF80720B8A5DFF-2AFF38A7C401751D>..r..j.*.8...u.在上例中,128個單元分成8行,每行16個單元,每個單元的內容分別以十六進制形式和ASCII碼形式顯示。如果該單元的內容不是可顯示字符,則在AS

溫馨提示

  • 1. 本站所有資源如無特殊說明,都需要本地電腦安裝OFFICE2007和PDF閱讀器。圖紙軟件為CAD,CAXA,PROE,UG,SolidWorks等.壓縮文件請下載最新的WinRAR軟件解壓。
  • 2. 本站的文檔不包含任何第三方提供的附件圖紙等,如果需要附件,請聯系上傳者。文件的所有權益歸上傳用戶所有。
  • 3. 本站RAR壓縮包中若帶圖紙,網頁內容里面會有圖紙預覽,若沒有圖紙預覽就沒有圖紙。
  • 4. 未經權益所有人同意不得將文件中的內容挪作商業或盈利用途。
  • 5. 人人文庫網僅提供信息存儲空間,僅對用戶上傳內容的表現方式做保護處理,對用戶上傳分享的文檔內容本身不做任何修改或編輯,并不能對任何下載內容負責。
  • 6. 下載文件中如有侵權或不適當內容,請與我們聯系,我們立即糾正。
  • 7. 本站不保證下載資源的準確性、安全性和完整性, 同時也不承擔用戶因使用這些下載資源對自己和他人造成任何形式的傷害或損失。

最新文檔

評論

0/150

提交評論