您好,登錄后才能下訂單哦!
本篇文章給大家分享的是有關C++中出現斷點無效如何解決,小編覺得挺實用的,因此分享給大家學習,希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
1. 某個修改后,斷點無法工作,之前版本依然正常
2. 只是某個文件中斷點無法工作
3. 斷點打在 引用另外DLL中的類對象A
文件結構:
Core.dll A.cpp class A { public: A( ) { printf("constructor of a"); } } UI.dll Manager.cpp class Manager { public: Manager( ) { printf("constructor of Manager"); } } Button.cpp A ins; // 斷點打在這里 Run.exe void main() { Manager ins; // 實例化 }
這里發現A根本不會被C runtime在執行main之前構造,因此造成了C++斷點無效。已經排除特殊字符影響的原因,按照網上的方法是,將文件保存為UNICODE,問題依舊。開始用排除隔離法確定問題位置,***發現這樣一個規律:
只要在Manager.cpp里構造一個Button
Button insB;
這樣做了以后,斷定必定能起作用。因此推斷CRT層的全局構造是需要一個鏈表來推動的。因為Manager需要構造,因此CRT肯定會掃描這個CPP對應OBJ鏈接到exe里的段,讓這個段里的全局構造函數都初始化,但是Button因為沒有使用,因此也不會構造。這樣局部掃描應該是出于效率。
以上就是C++中出現斷點無效如何解決,小編相信有部分知識點可能是我們日常工作會見到或用到的。希望你能通過這篇文章學到更多知識。更多詳情敬請關注億速云行業資訊頻道。
免責聲明:本站發布的內容(圖片、視頻和文字)以原創、轉載和分享為主,文章觀點不代表本網站立場,如果涉及侵權請聯系站長郵箱:is@yisu.com進行舉報,并提供相關證據,一經查實,將立刻刪除涉嫌侵權內容。