當我在我的工作機器上運行(WIN7 VS2010終極SP1)簡單的程序,沒有調用堆棧, 「inpossible」 找錯誤
int main()
{
unsigned i = 5;
i %= 0;
return 0;
}
或
int main()
{
int * ip = 0;
*ip = 4;
return 0;
}
,我被零取整數除法未處理的異常。當我點擊break按鈕時,爲了查看問題,我的調用堆棧僅包含msvcrt100d和ntdll,並且Visual Studio在LeaveCriticalSection(_locktable[locknum].lock);
行的文件mlock.c
中打破了我的觀點。
當我在另一臺機器(win7 VS2010 proff sp1)上運行此代碼時,VS會在有問題的線路i %= 0;
od *ip = 4
上完全分解。
這個錯誤隱藏在我的項目中的某個地方,直到我在另一臺機器上運行它時,我才找到它。我該如何解決這個問題?我需要在我的工作機器上看到它。
我有一個全新安裝的Windows 7,全新安裝Visual Studio 2010和VS-SP1。 我的項目不應該毀了。我使用CMake生成它,同樣的項目在非工作機器上工作良好。
任何意見將不勝感激。
剛剛意識到,你有調試信息的問題,而不是試圖除以零:)如果設置被搞砸了,很難猜測究竟是什麼錯誤。我會確保擁有所有的調試信息。看起來VS只是爲相同的代碼位置顯示不同的地方。 – 2013-02-20 14:56:34
您是否嘗試**手動**刪除工作機器上的所有* .ncb,* .ilk,* .pdb,* .obj,* .idb文件? – borisbn 2013-02-20 15:09:46
是的。我創建了全新的乾淨項目,只添加一個cpp文件,用示例代碼填充並運行。 – relaxxx 2013-02-20 15:14:24