登录 用户中心() [退出] 后台管理 注册
   
您的位置: 首页 >> SoftHub关联区 >> 主题: [c/c++/seh]TDM-GCC-64 下的 seh 示例     [回主站]     [分站链接]
[c/c++/seh]TDM-GCC-64 下的 seh 示例
clq
浏览(288) - 2019-05-22 09:42:14 发表 编辑

关键字: seh

[2019-05-27 14:56:25 最后更新]

[c/c++/seh]TDM-GCC-64 下的 seh 示例

都说 TDM-GCC-64 支持 seh ,那么具体的代码应该怎样写呢? 搜索整个中文代码世界,我就没见过.

以下是一个可用的示例,但应该不是标准做法.


#include <stdio.h>
#include <windows.h>
#include <Dbghelp.h>
////
#include <excpt.h> //vc 的__try 要用的

LONG WINAPI UnhandledExceptionFilterEx(struct _EXCEPTION_POINTERS *pException)
{
printf("UnhandledExceptionFilterEx call\n");

//return EXCEPTION_CONTINUE_SEARCH;
return EXCEPTION_EXECUTE_HANDLER; //继续运行后面的,前面的那个不行
}

int exceptEx(_In_ EXCEPTION_POINTERS *lpEP)
{
return UnhandledExceptionFilterEx(lpEP);
}

int main()
{


printf("aaa\r\n");

//mingw-w64 下的 seh 测试
//------------------------------------------
//可以,但是代码有点多
//https://blog.csdn.net/aa13058219642/article/details/80263706
//方式2 __try1/__except1拦截异常

__try1(exceptEx) {


//crashFunc();
BYTE* pch;
pch = (BYTE*)00001234; //给予一个非法地址
*pch = 6; //对非法地址赋值,会造成Access Violation 异常

} __except1
{
printf("crash __except1\n");
}

//------------------------------------------
//https://www.cnblogs.com/nchxmoon/p/5106215.html
//好象 vc 才行
/*
__try
{
BYTE* pch ;
pch = ( BYTE* )00001234 ; //给予一个非法地址
*pch = 6 ; //对非法地址赋值,会造成Access Violation 异常
}
__except(EXCEPTION_EXECUTE_HANDLER)
{
MessageBox(0, L"SEH", 0, 0);
}

*/
//------------------------------------------
//https://blog.csdn.net/jffyuhgv/article/details/87628879#_Toc31321
//好象不行

/*
__seh_try {



int n=5/0;



puts(" ---after");

}

__seh_except(info, context)

{

puts(" catch .....ok ");


}

__seh_end

*/

//------------------------------------------


/*
__try
{
BYTE* pch ;
pch = ( BYTE* )00001234 ; //给予一个非法地址
*pch = 6 ; //对非法地址赋值,会造成Access Violation 异常
}
__catch(...)
{
AfxMessageBox( "catched" ) ;
} s
*/

printf("ccc\r\n");

return 0;
}




clq  2019-05-27 14:56:25 发表 编辑

linux 下似乎是没有 seh 的, 不过 linux 下的 signal()函数处理信号工作理很好. 多年前我就做有过实现测试过各种段错误异常的恢复处理.

总数:1 页次:1/1 首页 尾页  
总数:1 页次:1/1 首页 尾页  


所在合集/目录



发表评论:
文本/html模式切换 插入图片 文本/html模式切换


附件:



NEWBT官方QQ群1: 276678893
可求档连环画,漫画;询问文本处理大师等软件使用技巧;求档softhub软件下载及使用技巧.
但不可"开车",严禁国家敏感话题,不可求档涉及版权的文档软件.
验证问题说明申请入群原因即可.

Copyright © 2005-2020 clq, All Rights Reserved
版权所有
桂ICP备15002303号-1