WIN32彙編-Radasm下斷點調試

Radasm中有下斷點功能,但是一到編譯的時候出就錯,我特別想知道怎麼使用這個功能,後來看了一下Radasm的幫助文檔,其中有一段關於調試的介紹,文章中說需要include \RadASM\masm\inc\radbg.inc,但如果直接在.asm方件中粘貼這句話編譯是無法通過的,因爲找不到這個文件,因爲我們建立的win32工程是屬於\RadASM\masm32目錄的,我們必須指定一個完整的路徑,在我的電腦上路徑應該是D:\Program Files\RadASM\Masm\Inc\radbg.inc,好了include這句話後下斷點編譯也不會報錯了,好像最多支持10個斷點,接着要調試程序的話我們只能直接點擊紅色歎號的運行按鈕(或者按快捷鍵Ctrl+Shift+F5)。出來的結果並不令人滿意,僅僅是顯示了各個寄存器的值而已,如下圖

 我可不是想要這樣的結果哦,看來這個調試器並不是非常友好,因爲看不到整個源程序的其它代碼,僅僅是顯示一個簡陋的對話框。

我們不就是想要下個斷點嗎,幹嘛要這麼費力不討好?其實我們直接在源代碼中需要中斷的地方寫句int 3就行了,編譯運行後用od來調試(快捷鍵Ctrl+D啓動),程序自然會中斷到該處,但如果程序中有多處要下斷點的話,這樣操作會導致根本不知道中斷到哪個地方了。針對此種情況,我們完全可以在代碼中寫些無意義但又不會影響結果的指令,如

mov eax,eax

mov ebx,ebx

nop

nop

push eax

pop eax

然後通過od的查找功能(快捷鍵Ctrl+S),輸入這些命令來定位到程序的某個地方。不同的斷點地方寫些不同的指令即可。這比int 3指令起碼要好一點。

發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章