日韩无码专区无码一级三级片|91人人爱网站中日韩无码电影|厨房大战丰满熟妇|AV高清无码在线免费观看|另类AV日韩少妇熟女|中文日本大黄一级黄色片|色情在线视频免费|亚洲成人特黄a片|黄片wwwav色图欧美|欧亚乱色一区二区三区

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

新聞中心

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

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

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

1. 某個修改后,斷點無法工作,之前版本依然正常

2. 只是某個文件中斷點無法工作

3. 斷點打在 引用另外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; // 斷點打在這里 
  15. Run.exe 
  16. void main() 
  17. Manager ins; // 實例化 
  18. }

這里發(fā)現(xiàn)A根本不會被C runtime在執(zhí)行main之前構(gòu)造,因此造成了C++斷點無效。已經(jīng)排除特殊字符影響的原因,按照網(wǎng)上的方法是,將文件保存為UNICODE,問題依舊。開始用排除隔離法確定問題位置,***發(fā)現(xiàn)這樣一個規(guī)律:

只要在Manager.cpp里構(gòu)造一個Button

Button insB;

這樣做了以后,斷定必定能起作用。因此推斷CRT層的全局構(gòu)造是需要一個鏈表來推動的。因為Manager需要構(gòu)造,因此CRT肯定會掃描這個CPP對應(yīng)OBJ鏈接到exe里的段,讓這個段里的全局構(gòu)造函數(shù)都初始化,但是Button因為沒有使用,因此也不會構(gòu)造。這樣局部掃描應(yīng)該是出于效率。

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


當(dāng)前名稱:C++斷點無效解決方案
URL標(biāo)題:http://m.5511xx.com/article/dhopgds.html