2013-06-18 111 views
2

我的程序似乎與下面的錯誤而崩潰之前短時間運行:調試異常,源信息丟失

Unhandled exception at 0x001FFF23 in Program.exe: 0xC0000005: 
Access violation reading location 0x040FA010. 

調用堆棧是非常無益的(源信息是這樣做的調試信息丟失模塊),所以我不知道問題出在哪裏。程序在崩潰前(數百幀)正常運行時間不同,因此使用斷點來定位問題非常困難。嘗試加載符號但沒有找到符號。

[email protected]() Unknown 
[email protected]() Unknown 
0027ff23() Unknown 
[Frames below may be incorrect and/or missing] 
nvoglv32.dll!582c9af4() Unknown 
nvoglv32.dll!582c9dbb() Unknown 
nvoglv32.dll!582cdbd3() Unknown 
nvoglv32.dll!582d0918() Unknown 
nvoglv32.dll!57a9491b() Unknown 
nvoglv32.dll!580c5f35() Unknown 
[email protected]() Unknown 
nvoglv32.dll!57a058a5() Unknown 
nvoglv32.dll!579f60ab() Unknown 
nvoglv32.dll!582df7ce() Unknown 
nvoglv32.dll!57a106e5() Unknown 
nvoglv32.dll!58190f2d() Unknown 
nvoglv32.dll!582bb8c7() Unknown 
nvoglv32.dll!57a0b621() Unknown 
nvoglv32.dll!5823285b() Unknown 
nvoglv32.dll!58232a9d() Unknown 
[email protected]() Unknown 
[email protected]() Unknown 
[email protected]() Unknown 

看着callstack,我認爲這是OpenGL相關的東西,但是glGetError()永遠不會指出問題。我的程序很長,所以我沒有在這裏發佈。此外,我的問題並不僅僅是解決這個特殊的例外,而是找到一種有效的方法來調試它們。逐行讀取整個程序不是一個問題,因爲我不知道問題出現在哪個函數中。沒有編譯器警告/ W3,所以我不知道從哪裏開始。如何才能找出Visual Studio 2012 Ultimate中發生異常的位置?

+1

你有'調試 - >異常... - > Win32異常 - >訪問衝突'選項啓用? – catscradle

回答

1

像這樣的GL崩潰最可能的原因是不正確的緩衝區處理。你不會用glGetError()看到這個表面 - 驅動程序會在訪問壞的頂點/索引緩衝區時崩潰。您可能有運氣使用gDEBugger

+0

這確實是問題,謝謝。 – user2498607

0

使用Microsoft Symbol Servers來下載Windows DLL的符號。這將有助於您更好地瞭解錯誤發生的位置。要在Visual Studio中使用符號服務器,請按照these instructions

+1

nvoglv32是某些nVidia圖形驅動程序的openGL模塊,我懷疑你必須通過nVidia才能獲得有用的調試信息。一個快速的谷歌搜索不會產生任何東西,但有可能這些符號不公開(或者可能非常昂貴)。 – Wug