VC Debug中遇到first chance exception问题

【Bug】 Access Violation exception&First-chance exception http://blog.csdn.net/m_star_jy_sy/article/details/5578998 阅读详情

查阅了下资料,发现与虚拟内存分配有关.

first-chance 基本上是这样的

1。通过virtualalloc分配(堆增长也需要virtualalloc)的内存并非立即有效,仅仅是在页表项标注了一下。
2。不立即分配的原因是每个进程都有一个工作集,大约为120k,
3。当进程首次访问该内存地址,产生一个first-chance access violation,线程挂起,转到ring 0,系统发现内存的确分配了,commit,如果发现该地址没有分配,产生异常(称为second-chance access violation)0xC0000005。

也就是说如果不产生SECOND-CHANCE VIOLATION,就不会对程序产生影响

First-chance exception表明程序运行出现了access violation异常,但被你或者你使用的某个模块中的异常处理程序捕捉到了。调试器用这种办法来通知你出现了一个异常。在调试状态下,打开debug菜单下的exception对话框,把access violation异常的action改成stop always,这时再出现异常,调试器就会弹出一个对话框报告这个异常,并在异常发生处停下来,而不仅仅是在output窗口中报告first-chance exception,这有助于你定位异常位置

sigh!

异常处理之不要放过First-chance exception 不要放过First-chance exception1)什么是First-chance exception VC6调试环境下(debug)运行程序时,经常在output窗口看到有 First-chance exception in hotfoxd.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception. 的输出字样。 当调试程序时,若引发 阅读详情

相关推荐

VC调试程序输出First-chance Exception.

    在VC中调试程序时,Output窗口有时会出现“First-chance exception in xxx.exe...”这样的信息。一般来说,这是由于程序中发生了异常,被VC捕获而产生的输出。    在调试器中运行程序时,如果程序产生异常,调试器会首先获得通知(即First-chance exception),而后此异常由产生它的程序负责捕获。如果程序没有捕获此异常,那么调试器会再次

沙漠黑鸟的专栏 4761

FirstChanceException原理

异常处理是代码中很重要的一项注意点。但是有时候一些不恰当的异常处理,反而会影响我们在代码运行时的调试。 出现问题 假如我们有这么一段代码,我期望调用Bar方法,输出“黄腾霄是帅哥”。 但是在实际运行中,其中的一个方法Foo抛出了一个异常。 而作为代码书写者,为了确保软件的正常运行,将这个方法的所有异常都吞掉了。 此时导致的结果就是,用户端看到软件运行正常,但是没有期望的输出 static v...

黄腾霄的博客 806

WIN8下VC6单步调报错解决方法((OLE32.DLL): 0xC0000005: Access Violation)

win8下安装vc6之后单步调试提示 First-chance exception in 程序名.exe (OLE32.DLL): 0xC0000005: Access Violation 做如下设置即可解决: 1、菜单Tools->Options中的Debug,Disassembly window下的Source annotation取消 2、保存设置,然后即可单步调试 3、再将Too

Seeklm的专栏 1万+

First chance exception 与 Second chance exception

1. 当异常发生后,系统会首先检查是否有调试器加载,如果有则调试器会收到异常消息,并决定是否中断程序的执行。这叫First chance exception。如果没有调试器加载,则转2,如果调试器决定忽略First chance exception,同样转2,如果调试器不忽略,则

notebook2001a的专栏 750

Qt中处理First chance exception异常

不要放过First-chance exception 1)什么是First-chance exception  VC6调试环境下(debug)运行程序时,经常在output窗口看到有  First-chance exception in hotfoxd.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.  的输出字样。  当调

菜鸟天路 4299

First-chance exception in KERNEL32.DLL 0xE06D7363 Microsoft C++ Exception

First-chance exception in KERNEL32.DLL 0xE06D7363 Microsoft C++ Exception 2009-05-04 16:21 在VC中调试程序时,Output窗口有时会出现“First-chance exception in xxx.exe...”这样的信息。一般来说,这是由于程序中发生了异常,被VC捕获而产生的输出...

weixin_30454481的博客 312

为什么在debug时总是看到异常输出?

 在调试运行我的程序时,为什么会在VC6的输出窗口中不断地看到如下的异常信息:First-chance exception in bb.exe (KERNEL32.DLL): 0xE06D7363: Microsoft C++ Exception.这是由于你调用的某个系统函数可能输出了异常,而你的代码又不断地调用了这个函数。从而造成这种异常不断地被触发。如果希望再现这种情况,可参考如下

“开小面的胖猴子”的专栏 666

Unhandled exception in ***.exe(OLE32.DLL):0xC0000005:Access Violation

win8/win8.1下安装vc6之后单步调试提示First-chance exception in 程序名.exe (OLE32.DLL): 0xC0000005: Access Violation 做如下设置即可解决: 1、菜单Tools->Options中的Debug,Disassembly window下的Source annotation取消 2、保存设置,然后即可单步调试

奔跑的蜗牛 6282

win10+vc6+单步调试报错

First-chance exception in 程序名.exe (OLE32.DLL): 0xC0000005: Access Violation 做如下设置即可解决: 1、菜单Tools->Options中的Debug,Disassembly window下的Source annotation取消 2、保存设置,然后即可单步调试 3、再将Tools->Options中的Debug,D

kisslove99的博客 2349

平台崩溃之operator new异常(六)-2010-5-17

2010-5-17在debug模式下运行平台,启动初,output窗口就输出如下信息:First-chance exception in hotfoxd.exe (KERNEL32.DLL): 0x000006EF: (no name).经查,发现是hotfox.cpp的int Hotfox_Deamon::svc (void)的以下代码造成的if (report_status (SERVIC

铭星的专栏 763

WIN10下VC6单步调报错解决方法((OLE32.DLL): 0xC0000005: Access Violation)

win10下安装vc6之后单步调试提示 First-chance exception in 程序名.exe (OLE32.DLL): 0xC0000005: Access Violation 做如下设置即可解决: 1、菜单Tools->Options中的Debug,Disassembly window下的Source annotation取消 2、保存设置,然后即可单步调试 ...

yangkunhenry的专栏 1863

WIN10使用VC6.0单步调试报错的问题

过程中报了两类错误: 1.First-chance exception in 程序名.exe (OLE32.DLL): 0xC0000005: Access Violation 2.Administrator privileges required for ole remote procedure call debugging :this feature will not work 对于第二个错误,很多人给出的解决办法是将VC6改为管理员权限启动,但是莫名其妙的无法打开网络映射位置。 参考第一个

Any_Howe的博客 1473

Win8、10下安装vc6之后单步调试提示

First-chance exception in 程序名.exe (OLE32.DLL): 0xC0000005: Access Violation 做如下设置即可解决: 1、菜单Tools->Options中的Debug,Disassembly window下的Source annotation取消 2、保存设置,然后即可单步调试 3、再将Tools->Options中的Debug...

xiaofeiyu321的博客 268

WIN8下VC6单步调报错解决方法

WIN8下VC6单步调报错解决方法((OLE32.DLL): 0xC0000005: Access Violation) win8下安装vc6之后单步调试提示 First-chance exception in 程序名.exe (OLE32.DLL): 0xC0000005: Access Violation 做如下设置即可解决: 1、菜单Tools->Options中的Deb

GZZXBCXM2005的专栏 735
上一篇: MSN Messenger协议 原作:bhw98
下一篇: MSN P2P 协议实现 msmp2p.h
fanccYang
博客等级 码龄22年 1粉丝 7原创
评论 3
成就一亿技术人!
拼手气红包6.0元
还能输入1000个字符
 
 条评论被折叠 查看
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值