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


4)Run-Time Check Failure #2 - Stack around the variable 'szError' was corrupted

_TCHAR szError[32] = { 0 };

wsprintf(szError, _T("avcodec_send_packet:%d\n"), nRet);
OutputDebugString(szError);

原因:如果nRet是一个非常大的整型,会导致数组越界,从而程序崩溃提示如上


影响

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


解决方法

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



    本文转自fengyuzaitu 51CTO博客,原文链接:http://blog.51cto.com/fengyuzaitu/1947071,如需转载请自行联系原作者




相关文章
|
7月前
|
JavaScript
弹框下次触发时还保留上次的触发条件
弹框下次触发时还保留上次的触发条件
MonacoEditor 主动触发代码提示功能
MonacoEditor是微软提供的代码编辑器 vscode即是使用它作为编辑器。 它的开发语言是ts,可以嵌入到浏览器中。   代码提示或者说代码补全功能是我们经常需要定制的部分。 目前它提供的快捷键是ctrl+space,和win10以下的操作系统的默认中英文切换是冲突的。
6421 0
无法写入用户设置。请打开用户设置并清除错误或警告,然后重试。
无法写入用户设置。请打开用户设置并清除错误或警告,然后重试。
|
7月前
|
关系型数据库 MySQL 数据库
错误处理程序和错误触发条件
错误处理程序和错误触发条件。
59 0
|
消息中间件 架构师 数据处理
处理数据时点按钮,数据完数据时会自动执行的问题
处理数据时点按钮,数据完数据时会自动执行的问题
|
Java 编译器
即时编译的触发
即时编译的触发
|
Java Linux Windows
记一次因类未加载导致DEBUG断点执行不了的“诡异”
记一次因类未加载导致DEBUG断点执行不了的“诡异”
113 0
|
监控 Java Android开发
RxJava 异常时堆栈显示不正确?解决方法都在这里
RxJava 异常时堆栈显示不正确?解决方法都在这里
146 0
RxJava 异常时堆栈显示不正确?解决方法都在这里
|
Java
绑定监听事件的按钮运行结果错误原因及其解决方案
既然是窗口大小和按钮大小相同,那么一定是设置宽高的代码出现了问题,由于我们要使得代码冗余度降低,所以把按钮对象建在类中,所以在本类中的 this 关键字代表的就是JFrame窗体的大小,而不是按钮的大小
136 0
绑定监听事件的按钮运行结果错误原因及其解决方案
关于 屏蔽Qt未使用变量报警错误 的解决方法
关于 屏蔽Qt未使用变量报警错误 的解决方法
关于 屏蔽Qt未使用变量报警错误 的解决方法