彙編debug除錯程式

2021-08-28 20:02:17 字數 2005 閱讀 1123

1. debug程式使用:c>debug 檔名.exe

2. 常用debug命令

(1)彙編命令 a

功能:將輸入源程式的指令彙編成目標**並從指定位址單元開始存放。若預設起始位址,則從當前cs:100位址開始存放。a命令按行彙編,主要是用於小段程式的彙編或對目標程式的修改。

(2)反彙編命令 u

格式2將指定範圍的記憶體單元中的目標**轉換成彙編指令。

(3)顯示、修改暫存器命令 r

格式:r[暫存器名]

功能:若給出暫存器名,則顯示該暫存器的內容並可進行修改。預設暫存器名,則按以下格式顯示所有暫存器的內容及當前值(不能修改)。

ax=0000  bx=0004  cx=0020  dx=0000  sp=0080  bp=0000  si=0000

di=0000   ds=3000  es=23a0  cs=138e  ip=0000

nv up di pl nz na po nc

138e:0000 mov ax,1234

-r ax          ;輸入命令

ax 0014      ;顯示ax的內容

:                ;供修改,不修改按回車。

若對標誌暫存器進行修改,輸入:-rf

螢幕顯示如下資訊,分別表示of、df、if、sf、zf、af、pf、cf的狀態。

nv up di pl nz na po nc

不修改按回車鍵。要修改需個別輸入乙個或多個此標誌的相反值,再按回車鍵。r命令只能顯示、修改16位暫存器。

(4)顯示儲存單元命令 d

功能:格式1從起始位址開始按十六進製制顯示80h個單元的內容,每行16個單元,共8行,每行右邊顯示16個單元的ascii碼,不可顯示的ascii碼則顯示「·」。格式2顯示指定範圍內儲存單元的內容,其他顯示方式與格式1一樣。如果預設起始位址或位址範圍,則從當前的位址開始按格式1顯示。

例如:   -d 200           ;表示從ds:0200h開始顯示128個單元內容

-d 100 120     ;表示顯示ds:0100-ds:0120單元的內容

(5)修改儲存單元命令 e

例如:—e   ds:0100  'var'  12  34

表示從ds:0100 為起始單元的連續五個位元組單元內容依次被修改為 'v'、'a'、'r'、12h、34h。

格式2是逐個修改指定位址單元的當前內容。

如:—e ds:0010

156f:0010 41.5f

其中156f:0010單元原來的值是41h,5fh為輸入的修改值。若只修改乙個單元的內容,這時按回車鍵即可;若還想繼續修改下乙個單元內容,此時應按空格鍵,就顯示下乙個單元的內容,需修改就鍵入新的內容,不修改再按空格跳過,如此重複直到修改完畢,按回車鍵返回debug「-」提示符。如果在修改過程中,將空格鍵換成按「-」鍵,則表示可以修改前乙個單元的內容。

(6)執行命令 g

功能:cpu從指定起始位址開始執行,依次在第

一、第二等斷點處中斷。若預設起始位址,則從當前cs:ip指示位址開始執行一條指令。最多可設定10個斷點。

(7)跟蹤命令 t

功能:從指定位址開始執行『正整數』條指令,若預設『正整數』,表示執行一條指令,若兩項都預設,表示從當前cs:ip指示位址開始執行一條指令。

(8)指定檔案命令 n

格式:n《檔名或副檔名》

功能:指定即將調入記憶體或從記憶體寫入磁碟的檔名。該命令應該用在l命令和w命令之前。

(9)裝入命令 l

格式2將n命令指出的檔案裝入到指定起始位址的儲存區中,若省略起始位址,則裝入到cs:100處或按原來檔案定位約定裝入到相應位置。

(10)寫磁碟命令 w

格式2將起始位址的bx×10000h+cx個位元組內容存放到由n命令指定的檔案中。在格式2的w命令之前,除用n命令指定存檔的檔名外,還必須將要寫的位元組數用r命令送入bx和cx中。

(11)退出命令 q

格式:q

功能:退出debug,返回到作業系統。

Debug除錯程式

debug 1.進入debug方式 第二種 單擊工具欄中的小飛蛾,在下拉列表中選擇除錯的專案 2.新增斷點的方式 第一種 雙擊編輯框中 所在行號左側的空白處新增,再次雙擊刪除。第二種 在編輯框中 所在行號左側的空白處右鍵單擊 toggle breakpotion新增或刪除。第三種 快捷鍵ctrl s...

php 除錯程式

在執行時必須知道某個變數為何值。我是這樣做的,建立一檔案debug.php,其內容如下 php php ob start session start echo pre echo 本頁得到的 get變數有 print r get echo 本頁得到的 post變數有 print r post echo...

GDB除錯程式

gdb的三個功能 1 啟動被除錯的程式 2 設定斷點 3 設定斷點之後可以檢查程式的狀態 1.編譯生成可執行檔案 注意 g 除錯選項 gcc g tst.c o tst 2.啟動gdb gdb tst 3.在main函式處設定斷點 break main 4.執行程式 run5.利用 更加豐富的 gd...