Clayman's Graphics Corner

DirectX,Shader & Game Engine Programming

  博客园 :: 首页 :: 博问 :: 闪存 :: 新随笔 :: 联系 :: 订阅 订阅 :: 管理 ::

 catch access violation exception

 

     遇到一个蛋疼的程序崩溃问题,debug模式下程序直接卡死,minidump可以定位到出错的代码,但捕捉到的数据太少,无法确定什么位置引起的内存访问错误。如果可以捕捉到这个异常设置断点,调试起来会方便很多。由于access violation exception是ms定义的异常类型,普通编译方式下try{} catch(...){}无法捕获到此异常。Google了一下,有几种方式可以捕获到ave,最简单的就是修改编译属性:Project Properties -> C/C++ -> Code Generation -> Modify the Enable C++ Exceptions to "Yes With SEH". 这样catch(...){}就可以正确捕获到vae了:)   此法最好只在调试时使用,正常发布的因此应该坚持使用默认编译属性,同时避免catch vae错误.

 

 

 

 

posted on 2012-12-16 13:58  clayman  阅读(1230)  评论(0编辑  收藏  举报