問題描述:
在調試模式下出現(xiàn)如下問題
Windows has triggered a breakpoint in .exe.
This may be due to a corruption of the heap, and indicates a bug in .exe or any of the DLLs it has loaded.
The output window may have more diagnostic information
用VC總是會出現(xiàn)這些千奇百怪的問題,上述問題看起來是多線程中某個線程釋放內存導致的錯誤,詭異的是,同樣一個程序,用來跑第一批數(shù)據(jù)的時候順利地出了結果,第二批數(shù)據(jù)的時候總是在第33個數(shù)據(jù)上彈出上述窗口,而且兩批數(shù)據(jù)的數(shù)據(jù)量也都是3000多,真是讓人咋舌。然而,更詭異的是,出現(xiàn)上述窗口后,強制選“continue”,竟然還能繼續(xù)運行,得到正確的結果。。。。。。
無奈的是,出錯的程序并不是我寫的,而且藏在dll里面我也看不到,只好硬著頭皮每次彈出窗口都點“continue”,希望最終能夠得到全部正確的結果吧。
感想:VC實在是個艱深難懂的東西,可是又不得不用它,吃一塹長一智,以后自己寫程序的時候盡量規(guī)范一點,能做的就只有這些了Q_Q
以下是從網絡上摘錄的關于這個問題的描述:
1. It was a problem of porting and not memory delete..!!
2. 程序不正常不是由CString對象引起的,而是由工作線程中一個堆內存釋放寫錯了位置引起的。
3. 在release模式程序運行 一切正常
4. malloc時把Size+1,保證末尾有'\0'
5. I met the same problem. I tried manually, and found this snap in is the
problem for my systgem. After rename it in the
HKLM\software\microsoft\mmc\SnapIns, the problem is gone.
Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\ {ca9f8727-31df-41d2-975c-887d84903967}]
@="SqlcmSnapin"
"NameString"="SQL Server Configuration Manager"
"NameStringIndirect"="@c:\\Program Files\\Microsoft SQL
Server\\90\\Tools\\binn\\SqlManager.dll,-3"
"About"="{56563bd1-5f42-43a8-abed-3c2a4328e8c1}"
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\ {ca9f8727-31df-41d2-975c-887d84903967}\NodeTypes]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\ {ca9f8727-31df-41d2-975c-887d84903967}\NodeTypes\{7f34670d-2d94-48e4-a88a-65c7ed5ae528}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\ {ca9f8727-31df-41d2-975c-887d84903967}\NodeTypes\{f39767e2-8f58-11d9-b89d-505054503030}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\ {ca9f8727-31df-41d2-975c-887d84903967}\NodeTypes\{f39767e7-8f58-11d9-b89d-505054503030}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\ {ca9f8727-31df-41d2-975c-887d84903967}\NodeTypes\{f39767e8-8f58-11d9-b89d-505054503030}]
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\MMC\SnapIns\ {ca9f8727-31df-41d2-975c-887d84903967}\StandAlone]
6. 剛剛找到原因了。到微軟的網站找了一個調試工具,可以幫助發(fā)現(xiàn)heap錯誤。網址如下:http://www.microsoft.com/whdc/devtools/debugging/default.mspx