日本综合一区二区|亚洲中文天堂综合|日韩欧美自拍一区|男女精品天堂一区|欧美自拍第6页亚洲成人精品一区|亚洲黄色天堂一区二区成人|超碰91偷拍第一页|日韩av夜夜嗨中文字幕|久久蜜综合视频官网|精美人妻一区二区三区

RELATEED CONSULTING
相關(guān)咨詢
選擇下列產(chǎn)品馬上在線溝通
服務(wù)時(shí)間:8:30-17:00
你可能遇到了下面的問題
關(guān)閉右側(cè)工具欄

新聞中心

這里有您想知道的互聯(lián)網(wǎng)營銷解決方案
C++斷點(diǎn)無效解決方案

C++作為一款功能強(qiáng)大的計(jì)算機(jī)編程語言,可以幫助我們輕松的完成許多功能需求。不過在這樣的語言編程中,如果處理不當(dāng),同樣也會出現(xiàn)一些問題。在這里我們就給出了C++斷點(diǎn)無效的解決方案。#t#

最近遇到一個(gè)vs2008 C++中斷點(diǎn)無法工作的問題,具體表現(xiàn)為:

1. 某個(gè)修改后,斷點(diǎn)無法工作,之前版本依然正常

2. 只是某個(gè)文件中斷點(diǎn)無法工作

3. 斷點(diǎn)打在 引用另外DLL中的類對象A

文件結(jié)構(gòu):

 
 
 
  1. Core.dll 
  2. A.cpp 
  3. class A 
  4. public: 
  5. A( )
  6. printf("constructor of a");
  7. UI.dll 
  8. Manager.cpp 
  9. class Manager
  10. public: 
  11. Manager( )
  12. printf("constructor of Manager");
  13. Button.cpp 
  14. A ins; // 斷點(diǎn)打在這里 
  15. Run.exe 
  16. void main() 
  17. Manager ins; // 實(shí)例化 
  18. }

這里發(fā)現(xiàn)A根本不會被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è)鏈表來推動的。因?yàn)镸anager需要構(gòu)造,因此CRT肯定會掃描這個(gè)CPP對應(yīng)OBJ鏈接到exe里的段,讓這個(gè)段里的全局構(gòu)造函數(shù)都初始化,但是Button因?yàn)闆]有使用,因此也不會構(gòu)造。這樣局部掃描應(yīng)該是出于效率。

解決這個(gè)C++斷點(diǎn)無效問題還有一個(gè)方法就是全部使用靜態(tài)鏈接方式,這樣構(gòu)造代碼都放到***的exe中,就不會出現(xiàn)這樣的問題。


網(wǎng)站標(biāo)題:C++斷點(diǎn)無效解決方案
本文路徑:http://www.dlmjj.cn/article/dhopgds.html