許多其它編譯器都附帶了原始碼級的偵錯程式,,這使得用這些高階語言除錯比較簡單,但對於masm並沒有一個整合的開發和除錯環境,我們可以用TRW和Softice實現原始碼級的除錯,這兩種方法,參看Hume兄的文章:http://www.finalseraph.org/hume/asmdata/sdbg.htm
下面提供一種用VC++6.0除錯的方法,好像比前兩種更簡單些。
方法如下:
--------
1、將我們的彙編程式編譯連線成除錯模式:
\masm32\bin\ml /c /coff /Cp /Zi Myprog.asm
\masm32\bin\link
/DEBUG /DEBUGTYPE:CV /subsystem:windows
myProg.obj
2、用VC++6.0建立一個同ASM程式同名字的工程:myProg,並將它編譯連線
成debug模式,此時,在VC工程myProg\debug中會形成myProg.exe。
3、將第1步驟中用Masm32編譯連線成的同名exe檔案myProg.exe複製到:
VC++工程myProg\debug中,覆蓋VC++形成myProg.exe
4、啟動VC++6.0,開啟myProg工程,build->start
debug->go,呵呵。。
進入了Masm32形成的myProg.exe,並且是原始碼級除錯。
至此,請隨心所欲的用VC偵錯程式的強大功能,除錯你的Masm32程式吧!
附:我一般都是用個批處理(L_debug.bat)一下完成:
c:\masm32\bin\ml /c /coff /Cp /Zi
Myprog.asm >Mydebug.txt
c:\masm32bin\link /DEBUG /DEBUGTYPE:CV /subsystem:windows
myProg.obj
copy .\myProg.exe VC工程\debug\myProg.exe
啟動VC進行除錯。。。
Spring.W
2002/11/25