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 服务器不可用的错误。

解决方法

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

时间: 2024-11-05 19:01:05

VS 设置调试异常触发的相关文章

VS 设置调试目录

问题 解决方案的配置分为release和debug版本,至于其中的区别不再阐述.默认下会生成release和 debug文件夹,包括编译的中间文件以及最终的生成文件.启动调试和开始运行,指定的调试或者运行的目录是不一样的,调试的时候启动的并不是debug文件夹下面的可执行程序,除非指定了调试的目录,默认情况下,是以工程目录$(ProjectDir)定义的目录为调试目录,这个是vc.proj文件所在的目录.如果程序依赖其他的文件或者dll,都必须拷贝到当前的目录下,否则执行出错.所以很自然的想到手

Entity Framework 6源码学习--设置调试EF环境

下载源代码 打开https://github.com/aspnet/EntityFramework6下载源代码. 建立调试解决方案 建立一个EntityFramework.Sample.sln在EntityFramework6根目录,建一个Console工程在src目录下,再将EF源代码文件夹中的EntityFramework和EntityFramework.SqlServer加入到解决方案中.如下图所示: 删除延迟签名 打开EntityFramework.EntityFramework.Sql

WCF调试异常信息:找不到类型“”,在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHosting

"/CommonHelpServices"应用程序中的服务器错误. 找不到类型"JianKunKing.Common.CommonHelp.Services.Service1",它在 ServiceHost 指令中提供为 Service 特性值,或在配置元素 system.serviceModel/serviceHostingEnvironment/serviceActivations 中提供. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪

WCF调试异常信息:ServiceHost 仅支持类服务类型

"/CommonHelpServices"应用程序中的服务器错误. ServiceHost 仅支持类服务类型. 说明: 执行当前 Web 请求期间,出现未经处理的异常.请检查堆栈跟踪信息,以了解有关该错误以及代码中导致错误的出处的详细信息. 异常详细信息: System.ArgumentException: ServiceHost 仅支持类服务类型. 源错误: 执行当前 Web 请求期间生成了未经处理的异常.可以使用下面的异常堆栈跟踪信息确定有关异常原因和发生位置的信息. 堆栈跟踪:

preprocessor设置调试宏

调试宏:preprocessor设置 预处理器“调试”宏在Xcode项目模板的调试版本定义.预处理宏在编译时被解释和调试宏可以用来允许调试代码运行在调试版本中你的项目.如果你不确定你的项目已经确定,可以确认这是在Xcode中选择项目,点击Build选项卡设置.搜索预处理和确保调试= 1正在为您调试定义建立(如波纹管).如果它不是已经定义在您的项目中,您可以添加它.预处理宏是区分大小写的. 简言之,调试处理器宏就像一个开关,可以用来打开代码的不同部分的代码.具体而言,调试宏的目的是用来打开和关闭源

java调试——异常断点

在一个大循环中出现了异常,需要查看异常上下文环境,使用单步调试跟进是行不通的, 捕获异常System.out一些信息定位?大多数人是这么干的,来试试添加异常断点.

Vue.set 向响应式对象中添加响应式属性,及设置数组元素触发视图更新

一.为什么需要使用Vue.set? vue中不能检测到数组和对象的两种变化: 1.数组长度的变化 vm.arr.length = 4 2.数组通过索引值修改内容 vm.arr[1] = ‘aa’ Vue.$set(target,key,value):可以动态的给数组.对象添加和修改数据,并更新视图中数据的显示. vue在构造函数new Vue()时,就通过Object.defineProperty中的getter和setter 这两个方法,完成了对数据的绑定.所以直接通过vm.arr[1] =

pInvokeStackImbalance 调试异常的解决办法

简单处理办法1: 在vs2010中 Debug->Exceptions...->Managed Debugging Assistants->PInvokeStackImbalance 的勾选去掉. 根本处理办法2: 转自:http://blog.csdn.net/elloop/article/details/7641369 当用c#调用c++ 写好的dll时,调试过程中出现:pInvokeStackImbalance 函数调用导致堆栈不对称.原因可能是托管的 PInvoke 签名与非托管

OD设置_异常

1. 忽略在 KERNEL32 中发生的内存访问异常 √ 忽略(传递到程序)以下异常情况 INT3 中断 √ 单步中断 √ 内存访问异常 √ 整数除以 0 √ 无效或特权指令 √ 所有 FPU 异常 √ 同时忽略一下指定的异常或者异常范围 √ 2.