我正在使用visual studio 2010教授。当我测试程序并且我遇到来自Access违规等的未处理异常时,调试器经常会破坏这些锁定的源文件,我认为这些文件是我正在使用的库的一部分。我记得当在数组中使用未初始化的var时发生了很多次这样的事情:
myArray[var]
其中var未初始化且具有一些较大的负值。但是当发生这种情况时,我无法弄清楚如何查看"我的代码/我编写的代码的最后一行"发生此异常的地方。试图介入或如何重新创建未公开的异常。我查看了调试选项,看看是否可以关闭它。但也许有一种方法。当我不知道在哪里寻找问题时,需要花费很长时间才能找到问题。
再次,我只是想看看"我的代码/我编写的代码"异常发生的地方。感谢您的时间。
编辑: 这是我在异常发生后在调用堆栈中看到的内容:
SDL.dll!00206280()
[Frames below may be incorrect and/or missing, no symbols loaded for SDL.dll]
Uber Mario.exe!_main() + 0x6c bytes C
Uber Mario.exe!_WinMain@16() + 0x101 bytes C
Uber Mario.exe!__tmainCRTStartup() Line 547 + 0x1c bytes C
> kernel32.dll!76ab339a()
ntdll.dll!77789ef2()
ntdll.dll!77789ec5()
对我来说没有任何意义,因为我写的是函数或代码。
答案 0 :(得分:0)
您可以随时查看堆栈跟踪,找出导致异常的功能。
你得到这样一个调用堆栈,因为语言没有任何东西阻止你访问
myArray[var] // say var is uninitialised
。
但是Windows中的语言运行时会检查你是否因安全原因访问了有效区域。所以基本上在你的情况下运行时抛出异常,而不是你的代码。
如果你是c / c ++,你会得到一个例外:
Run-Time Check Failure #3 - The variable 'var' is being used without being initialized.
中断执行,你会得到当前正在执行的行,导致失败。