【調試】DLL EXE 調試技巧


 

 

0、隨便說點

    最近因為一些原因一直都沒有更新博客,從今天開始要逐漸恢復了,也是對自己的鞭策。

 

1、本文目標

    本文要說在有DLL 和 EXE源碼的情況下調試DLL 和 EXE, 工具是VC++2010,相信很多同學都會,肯定也有很多同學不會。 自己也曾經因為不懂怎么調試DLL、ActiveX控件而在調試的時候費很多勁。

今天就來說一說一個簡單的調試方法。

 

2、應用場景

    一個DLL:add.dll, 導出了一個函數Add計算兩個數的和

    一個EXE:useadd.exe,使用add.dll提供導出函數來計算結果

    假設DLL 和 EXE在不同的解決方案中(在同一個解決方案中的方法是一樣的),現在要在EXE的源碼中調試進DLL的源碼。   同時又分兩種情況:①運行EXE ②調試EXE    下面會分別說明。

 

3、運行EXE 調試進DLL

    為了不讓EXE的代碼一下執行過DLL中的導出函數,在該函數之前先加行代碼暫停(比如MessageBox, cin輸入流等)

    ①啟動EXE

    ②在EXE中代碼執行到DLL導出函數之前,在DLL項目代碼中添加斷點

    ③選擇調試菜單--附加到進程--選擇之前的EXE進程

    ④繼續讓EXE中代碼執行即可

 

 

 

 

 

 

 

 

4、調試EXE  調試進DLL

    這種情況下當調試DLL附加到EXE進程時,【附加】按鈕是灰色不可用的,因為此時EXE正在被調試,其承載進程是VS調試器,所以應該在進程列表中選擇  進行附加,其他步驟相同。

 

 

 

 

 

 

 

 

5、補充

    調試ActiveX控件類似

 

6、再次補充

    我們通常會遇到這樣一種情況:【運行】(而非調試)EXE,發現有些運行結果不是期望的,這個時候我們就要【調試】一下看問題在哪里。

這個時候怎么辦呢?  關掉EXE進程,如何重新F5?? 呵呵, 我以前就是這樣。。  

   應該這樣:在VS打開的項目里,還是點擊 菜單【調試】-【附加到進程】-在進程列表中選擇當前項目對應的EXE進程,附加即可。

 


免責聲明!

本站轉載的文章為個人學習借鑒使用,本站對版權不負任何法律責任。如果侵犯了您的隱私權益,請聯系本站郵箱yoyou2525@163.com刪除。



 
粵ICP備18138465號   © 2018-2025 CODEPRJ.COM