怎样捕捉OxC0000005类型的内存访问冲突引起的异常

laoluo9932 2013-02-20 05:22:26
我的一个程序调用了一个第三方的库,该库我是无法修改和调试的。在debug下运行,在调用该库的某个API时偶尔会抛异常,导致程序崩溃。提示框显示:OxC0000005访问0x********地址错误,大致就是这样的信息。
我想捕捉到这个异常,这样进程在运行时就不会崩溃了。可是我用C++的try catch(...)捕获不到,用__try __except也捕捉不到。
请各位大侠给指点一下,有什么办法能捕捉到这种内存访问错误引起的异常。
...全文
1593 6 打赏 收藏 转发到动态 举报
写回复
用AI写文章
6 条回复
切换为时间正序
请发表友善的回复…
发表回复
stjay 2013-02-20
  • 打赏
  • 举报
回复
这个能够捕捉0xC0000005异常
int SehFilter(DWORD dwExceptionCode)
{
	switch (dwExceptionCode)
	{
	case EXCEPTION_ACCESS_VIOLATION:
		return EXCEPTION_EXECUTE_HANDLER;
	}
	return EXCEPTION_CONTINUE_SEARCH;
}

int test()
{
	*(int*)0 = 0;
	return 0;
}

int main(int argc, char* argv[])
{
	__try
	{
		test();
		printf("test()");
	}
	__except (SehFilter(GetExceptionCode()))
	{
		printf("EXCEPTION_ACCESS_VIOLATION");
	}

	getch();
}
okgogo2000 2013-02-20
  • 打赏
  • 举报
回复
启动时 if (!ProcessShellCommand(cmdInfo)) 有时会crash报以上错误。 关注中。。。
一个傻冒 2013-02-20
  • 打赏
  • 举报
回复
是不是栈溢出,覆盖了异常处理在栈中的记录,所以捕捉不到了?
漫步者、 2013-02-20
  • 打赏
  • 举报
回复
用assert试一试,或者debug-》 call back
zcchm 2013-02-20
  • 打赏
  • 举报
回复
http://stackoverflow.com/questions/993551/seh-access-violation-and-stack-guard-page To catch access violation exceptions, you need to enable SEH exception handling (C/C++ -> Code Generation -> Enable C++ Exceptions -> Yes, with SEH Exceptions). Be warned though, this will more likely than not make your software less reliable. You won't always get an access violation on every bad memory access -- it is very possible that your bad pointer points to valid virtual memory. In that case could overwrite any valid data in your program, but not see the consequences for a long time. You are much better off to ensure that you would never write to bad memory in the first place.
jimette 2013-02-20
  • 打赏
  • 举报
回复
刚刚调用CoInitialize 引起了上述错误 更改了一下位置 错误没有 关注!
内容概要:本文围绕“【SCUC】N-1故障集+安全约束机组组合研究(Matlab代码实现)”展开,系统探讨电力系统在N-1故障场景下的安全约束机组组合(SCUC)问题,旨在实现系统安全性与运行经济性的协同优化。研究通过构建包含机组启停、出力计划、潮流约束、备用容量及N-1安全准则的数学模型,结合混合整数线性规划等优化算法,利用Matlab平台完成仿真求解,并引入YALMIP等建模工具提升建模效率。文档提供了完整的代码实现方案与测试案例,涵盖故障集的生成与处理方法,帮助用户掌握鲁棒性和分布鲁棒优化的基本思想,适用于电力系统安全校核与调度决策支持。; 适合人群:电力系统及相关专业的研究生、从事电力调度、能源优化的科研人员及工程技术人员。; 使用场景及目标:① 掌握N-1安全准则在机组组合中的建模方法与实现流程;② 开展安全约束机组组合(SCUC)与安全约束经济调度(SCED)的仿真分析;③ 利用Matlab/YALMIP快速搭建电力系统优化模型并进行求解与验证。; 阅读建议:建议读者结合文档内容与网盘提供的完整资源(含代码与数据),动手实践建模与调试过程,重点关注约束条件的设定、故障场景的枚举与处理策略,同时参考相关文献深化对鲁棒优化与分布鲁棒方法的理解。

16,550

社区成员

发帖
与我相关
我的任务
社区描述
VC/MFC相关问题讨论
社区管理员
  • 基础类社区
  • Creator Browser
  • encoderlee
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

        VC/MFC社区版块或许是CSDN最“古老”的版块了,记忆之中,与CSDN的年龄几乎差不多。随着时间的推移,MFC技术渐渐的偏离了开发主流,若干年之后的今天,当我们面对着微软的这个经典之笔,内心充满着敬意,那些曾经的记忆,可以说代表着二十年前曾经的辉煌……
        向经典致敬,或许是老一代程序员内心里面难以释怀的感受。互联网大行其道的今天,我们期待着MFC技术能够恢复其曾经的辉煌,或许这个期待会永远成为一种“梦想”,或许一切皆有可能……
        我们希望这个版块可以很好的适配Web时代,期待更好的互联网技术能够使得MFC技术框架得以重现活力,……

试试用AI创作助手写篇文章吧