貼個用VC++在原始碼級下除錯MASM32彙編程式的方法。。。大家交流。。 (1千字)

看雪資料發表於2002-11-25

許多其它編譯器都附帶了原始碼級的偵錯程式,,這使得用這些高階語言除錯比較簡單,但對於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

相關文章