本篇文章給大家分享的是有關(guān)C++中出現(xiàn)斷點(diǎn)無效如何解決,小編覺得挺實(shí)用的,因此分享給大家學(xué)習(xí),希望大家閱讀完這篇文章后可以有所收獲,話不多說,跟著小編一起來看看吧。
創(chuàng)新互聯(lián)公司是一家集網(wǎng)站建設(shè),新樂企業(yè)網(wǎng)站建設(shè),新樂品牌網(wǎng)站建設(shè),網(wǎng)站定制,新樂網(wǎng)站建設(shè)報(bào)價(jià),網(wǎng)絡(luò)營(yíng)銷,網(wǎng)絡(luò)優(yōu)化,新樂網(wǎng)站推廣為一體的創(chuàng)新建站企業(yè),幫助傳統(tǒng)企業(yè)提升企業(yè)形象加強(qiáng)企業(yè)競(jìng)爭(zhēng)力。可充分滿足這一群體相比中小企業(yè)更為豐富、高端、多元的互聯(lián)網(wǎng)需求。同時(shí)我們時(shí)刻保持專業(yè)、時(shí)尚、前沿,時(shí)刻以成就客戶成長(zhǎng)自我,堅(jiān)持不斷學(xué)習(xí)、思考、沉淀、凈化自己,讓我們?yōu)楦嗟钠髽I(yè)打造出實(shí)用型網(wǎng)站。
1. 某個(gè)修改后,斷點(diǎn)無法工作,之前版本依然正常
2. 只是某個(gè)文件中斷點(diǎn)無法工作
3. 斷點(diǎn)打在 引用另外DLL中的類對(duì)象A
文件結(jié)構(gòu):
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; // 斷點(diǎn)打在這里 Run.exe void main() { Manager ins; // 實(shí)例化 }
這里發(fā)現(xiàn)A根本不會(huì)被C runtime在執(zhí)行main之前構(gòu)造,因此造成了C++斷點(diǎn)無效。已經(jīng)排除特殊字符影響的原因,按照網(wǎng)上的方法是,將文件保存為UNICODE,問題依舊。開始用排除隔離法確定問題位置,***發(fā)現(xiàn)這樣一個(gè)規(guī)律:
只要在Manager.cpp里構(gòu)造一個(gè)Button
Button insB;
這樣做了以后,斷定必定能起作用。因此推斷CRT層的全局構(gòu)造是需要一個(gè)鏈表來推動(dòng)的。因?yàn)镸anager需要構(gòu)造,因此CRT肯定會(huì)掃描這個(gè)CPP對(duì)應(yīng)OBJ鏈接到exe里的段,讓這個(gè)段里的全局構(gòu)造函數(shù)都初始化,但是Button因?yàn)闆]有使用,因此也不會(huì)構(gòu)造。這樣局部掃描應(yīng)該是出于效率。
以上就是C++中出現(xiàn)斷點(diǎn)無效如何解決,小編相信有部分知識(shí)點(diǎn)可能是我們?nèi)粘9ぷ鲿?huì)見到或用到的。希望你能通過這篇文章學(xué)到更多知識(shí)。更多詳情敬請(qǐng)關(guān)注創(chuàng)新互聯(lián)行業(yè)資訊頻道。
網(wǎng)頁名稱:C++中出現(xiàn)斷點(diǎn)無效如何解決
文章來源:http://jinyejixie.com/article24/gcshje.html
成都網(wǎng)站建設(shè)公司_創(chuàng)新互聯(lián),為您提供品牌網(wǎng)站建設(shè)、定制開發(fā)、網(wǎng)站收錄、ChatGPT、網(wǎng)站設(shè)計(jì)、標(biāo)簽優(yōu)化
聲明:本網(wǎng)站發(fā)布的內(nèi)容(圖片、視頻和文字)以用戶投稿、用戶轉(zhuǎn)載內(nèi)容為主,如果涉及侵權(quán)請(qǐng)盡快告知,我們將會(huì)在第一時(shí)間刪除。文章觀點(diǎn)不代表本網(wǎng)站立場(chǎng),如需處理請(qǐng)聯(lián)系客服。電話:028-86922220;郵箱:631063699@qq.com。內(nèi)容未經(jīng)允許不得轉(zhuǎn)載,或轉(zhuǎn)載時(shí)需注明來源: 創(chuàng)新互聯(lián)