如何在锁定的源代码中停止调试器中断我没有写vs2010

时间:2014-03-31 01:08:14

标签: c++ visual-studio-2010 visual-studio-debugging

我正在使用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()    

对我来说没有任何意义,因为我写的是函数或代码。

1 个答案:

答案 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.

中断执行,你会得到当前正在执行的行,导致失败。