我目前正面臨着我的團隊正在處理的大型複雜項目中遇到的最惡毒的錯誤之一。我們使用C++作爲編程語言,目前使用Visual Studio進行開發,儘管最終產品旨在運行跨平臺。描述並發現導致看似隨機崩潰的狀態腐蝕問題
的錯誤:
有一個在我們的系統在執行看似隨機點觸發崩潰的錯誤。崩潰原因通常是每次執行程序時都會更改的地址讀訪問衝突。有時我們也會收到堆損壞錯誤。調用堆棧導致我們在代碼庫中發生變化,而很少發生到某些外部庫(我們的例子中是Lua),這些錯誤顯然不在此處。
看起來好像這個bug在過去4個月裏一直在發展。這段時間之前,大致上,我的一些團隊成員看到前端程序崩潰的方式和位置與現在發生的情況非常相似。
更多的細節:
我們的代碼庫是純C的大約800K行++(註釋除外)大,超過3年的課程開發。目前的項目重約30萬。我們已經使用了過多的單元測試和其他方法來消除錯誤,例如斷言,智能指針等。
其他人和我一直在試圖找到這個bug超過2個星期了。這對我來說已經不僅僅是一場噩夢。在這樣一個複雜的項目中,即使是舊的printf調試,在面對現在複雜的情況下似乎也會失敗。
我的問題
在我們這裏面臨什麼樣的錯誤呢?甚至有這個名字嗎?這種錯誤在其他大型項目中多多少少出現過?
在使用各種實用程序,在各種平臺和各種構建設置上花費了2個星期的無果調試之後,我們可以如何找到並消除它?
(我以前的問題被關閉,所以我想有更多的細節更好,制定這個時候,鏈接:https://stackoverflow.com/questions/7154645/how-is-this-kind-of-bug-called)
阿爾夫,零星的臭蟲是最糟糕的。學習使用調試工具的時間。 –