我的程序似乎在崩溃之前运行了一小段时间,但出现以下错误:
Unhandled exception at 0x001FFF23 in Program.exe: 0xC0000005:
Access violation reading location 0x040FA010.
调用堆栈非常无用(此模块的调试信息中缺少源信息),所以我不知道问题出在哪里。该程序在崩溃(数百帧)之前正常运行不同的时间,因此使用断点定位问题非常困难。尝试加载符号但未找到符号。
ntdll.dll!_NtRaiseException@12() Unknown
ntdll.dll!_KiUserExceptionDispatcher@8() 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
KernelBase.dll!_GlobalAlloc@8() 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
KernelBase.dll!_HeapCreate@12() Unknown
ntdll.dll!_NtFreeVirtualMemory@16() Unknown
KernelBase.dll!_GlobalFree@4() Unknown
查看callstack我认为它与OpenGL有关,但glGetError()从不表示存在问题。我的程序很长,所以我没有在这里发布。此外,我的问题不是修复这个特殊的异常,而是找到一种有效的方法来调试它们。逐行读取整个程序不是一个,因为我不知道问题出在哪个函数。 / W3没有编译器警告,所以我不知道从哪里开始。如何找出Visual Studio 2012 Ultimate中确实发生异常的位置?
答案 0 :(得分:1)
这种GL崩溃的最可能原因是缓冲区处理不当。你不会在glGetError()中看到这个表面 - 驱动程序在访问坏顶点/索引缓冲区时会崩溃。您可以通过gDEBugger
调试它答案 1 :(得分:0)
使用Microsoft Symbol Servers下载Windows DLL的符号。这有望让您更好地了解错误发生的位置。要在Visual Studio中使用符号服务器,请按照these instructions。