VS 设置调试异常触发

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了VS 设置调试异常触发相关的知识,希望对你有一定的参考价值。

说明

    默认情况下,VS2005,VS2010没有设置启动调试的异常触发,可在菜单调试下,选择异常,然后勾选上所有的异常中断的情况:

C++ Exceptions

Common Language Runtime Exceptions

...

作用

    准确定位程序已有的问题,而不是程序崩溃直接退出


注意

     用户设置的调试异常的信息,保存在.suo(Solution User Operation解决方案用户操作)文件,如果该文件没有上传到svn服务器,其他人下载代码的时候,必须重新设置调试异常的选项。如果没有进行用户的修改,默认可能不会生成.suo文件,该文件同时保存了用户的布局设置

   

实际应用场景中的效果

1)

    在模块实现了动态加载的工程里面,能够在调用异常的时候,准确定位到异常出错的情况,一般是空指针

2)

    在处理0xfeeefeee指针错误的时候,能够准确定位到错误的代码

3)

 char szTestString[3600*1058*3] = {0};

实际上默认的栈只有2M的空间,上述代码超出了栈的范围导致程序崩溃,开启异常设置之后出现提示:0xC00000FD: Stack overflow


影响

现象:在使用VS2005 c++调试程序时,无法使用文件对话框打开文件,只要执行打开文件对话框,就报0x7703c54f 处最可能的异常: 0x000006BA: RPC 服务器不可用的错误。


解决方法

由于调试需要将调试菜单中的异常都打上勾,将勾都去掉,问题解决


以上是关于VS 设置调试异常触发的主要内容,如果未能解决你的问题,请参考以下文章

VS调试技巧:如何让断点在for循环中变量满足某个条件的时候停下来(条件调试)

VS调试技巧:如何让断点在for循环中变量满足某个条件的时候停下来(条件调试)

在 PyCharm 中调试时在 EventFiringWebDriver 中触发的异常

条件断点在不应该触发时触发

如何调试其他线程上的异常?

关于sql触发器调试问题