DLL的除錯 (轉)

worldblog發表於2007-12-14
DLL的除錯 (轉)[@more@]

假設:
  要hook.dll hook.h hook.lib

1。建立一個新工程Test,將hook整個工程目錄複製到Test目錄下

2。在Test工程中需要用到hook.dll的源中(或stdafx.h中)加入
  #include ".hookhook.h"
  這樣在該原始檔中使用"::"就可以到hook.h中所有的匯出、
  變數以及類
 
3。在Test的工程設定->Link->/library modules中加入
  ./hook/de/hook.lib

4。編譯連線好Test之後,發現未找到hook.dll. 這需要設定path.
  可以在工程設定->Debug->Working directory中加入
  e:Testhookdebug
  也可以在autoexe.bat中設定路徑

5。透過工程->Insert Project into Workspace將hook.dsp工程加入 
  Test專案中。

6。設定hook工程為活動工程,在工程>Debug>Executable for 
  Debug session中加入: 
  e:testdebugtest.exe

7。現在設定斷點,按F5可以正常除錯了

注意:當除錯的DLL被對映到其他的應用(非TEST)程式空間並執行時,在該DLL中設定的斷點無效,當然可以透過MessageBox來檢視變數,若該DLL是MFC擴充套件DLL,則還可以用TRACE或afxDump來檢視變數。


來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/10752043/viewspace-993432/,如需轉載,請註明出處,否則將追究法律責任。

相關文章