VS2013 MFC 中DLL連接庫斷點不能命中的解決方案總結

1、結論測試

          1. 」當前不會命中斷點,由於尚未爲該文檔加載任何符號」纔是要使斷點命中的要點;.net

          2. 方案1是前提,必定要確保DLL是最新的,頭文件包含要同步一致;debug

          3. 按第6條的第一步就解決問題了,其它實驗後並沒有效果。調試

2、方案blog

1. https://blog.csdn.net/zhangbinsijifeng/article/details/46328393進程

(1).要調試的dll不在調試進程的進程空間,調不到,也就是該dll尚未被加載進exe內。即exe尚未使用到dll呢,固然不會加載該dll到exe的進程空間中文檔

(2).exe調用的dll,不是dll源代碼生成的最新的dll。必定要確保,exe調用的dll是dll源代碼最新生成的dll。同步

不理解下面這段話中的「現有項目」和「一直在用的DLL」  的具體指代    配置

 「第一條out了。確定是第二條。終於想起來了。我引用了三四個項目文件,有的項目文件沒有引用「工程」上的現有項目,而是直接引用了一個一直在用的dll。把那個引用刪除,而後改爲引用到現有項目。」引用

2. https://blog.csdn.net/cokewei/article/details/50547557

環境:VS2015解決方案中有2個項目,一個項目是C++寫的dll源代碼,另外一個是C#調用這個dll測試。

問題:C#調用dll沒法在dll源代碼中中斷,提示「當前不會命中斷點,由於尚未爲該文檔加載任何符號」

解決:

(1).首先設置dll和測試程序輸出路徑在同一個目錄下

(2).其次設置

        a 項目-〉屬性-〉配置屬性-〉C/C++-〉常規-〉調試信息格式,這裏不能爲「禁用」。   

        b項目-〉屬性-〉配置屬性-〉連接器-〉調試-〉生成調試信息,這裏設爲「是」。

最後很重要的一點:C#測試程序項目屬性-〉調試->啓用本機代碼調試 打勾

但願對遇到相同問題的人有用。轉載請註明出處

3. https://blog.csdn.net/madison_wang/article/details/52174876

把兩個工程的配置屬性中->調試:調試器類型由自動改成混合

4. https://blog.csdn.net/hnyzyty/article/details/46482077

首先,設置調試工做目錄(把圖1紅框內的路徑改成待調試的DLL所在的路徑)

以後,切記要把待調試的項目從新生成一次!

5. https://blog.csdn.net/qq_22889875/article/details/79621534

在對C#調用的C++動態庫打斷點進行調試時,斷點變爲黃色感嘆號,未進入斷點,反覆查找緣由,從新生成的dll文件已經拷貝到C#相關目錄下面,但仍是沒法進入斷點,後來發現從新生成的動態庫的pdb文件沒有拷貝到C#相關目錄下面,對動態庫進行清理,從新生成解決方案,而後將新生成的dll和pdb同時拷貝到C#相關目錄下,調試動態庫,斷點生效,問題解決。

(release文件夾下才有PDB,而debug模式下沒有PDB,所以此方案未試驗。)

6.https://blog.csdn.net/shakspers/article/details/78978017

相關文章
相關標籤/搜索