try catch 如何捕捉 Segmentation fault 异常????

newpeng 2009-07-28 10:41:59

int main(int argc,char *argv[])
{
try
{
vector <int> mv;
signal(SIGSEGV,NULL);
cout << mv[2] << endl;
}
catch(char *str)
{

}
catch(...)
{

}
cout <<1 <<endl;
return 0;
}


几个月前不知道在哪里看到一个帖子,说catch可以捕捉 Segmentation fault 这样的异常,当时拷贝在一个程序里面,后来这个文件被覆盖,找不到。在网上搜了半天也没有搜出来,也想不起那个catch怎么写。按照下面帖子里面所说加 signal(SIGSEGV,NULL); ,还是不能避免程序执行时 结果出现 Segmentation fault 错误。


http://topic.csdn.net/u/20080123/16/CAC362D5-5AF8-4B52-99CE-DA6A36569361.html

...全文
2662 11 打赏 收藏 转发到动态 举报
写回复
用AI写文章
11 条回复
切换为时间正序
请发表友善的回复…
发表回复
taodm 2009-07-28
  • 打赏
  • 举报
回复
访问空指针后,你要怎么搞才算程序不崩溃?程序还能有机会处在确定的稳定态?
newpeng 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 8 楼 hairetz 的回复:]
Segmentation fault 会报错的,你需要catch末?
[/Quote]
是的,我需要用一种方式去防止程序崩溃。
  • 打赏
  • 举报
回复
Segmentation fault 会报错的,你需要catch末?
taodm 2009-07-28
  • 打赏
  • 举报
回复
呃,所有C++标准异常都从exception基类派生的,自己在include目录搜索一下就知道了。
你要的东西,方法也不是没有,在signal的handler里转throw。
mengjfu 2009-07-28
  • 打赏
  • 举报
回复
周成风 2009-07-28
  • 打赏
  • 举报
回复
Mark!
newpeng 2009-07-28
  • 打赏
  • 举报
回复
[Quote=引用 1 楼 taodm 的回复:]
try catch不是万能的。 fault  不是c++异常。
[/Quote]
我以前在一个页面上的确看到对Segmentation 的 catch ,catch里面的变量记不清楚了,所以我才会在这里如此一问。非常后悔当时只是拷贝下来,没有做测试。更加后悔的那个程序文件居然被覆盖冲掉了。
superbtl 2009-07-28
  • 打赏
  • 举报
回复
signal(SIGSEGV,NULL); 如果段异常是发送这个信号终止的,
那么在信号接收处理函数里打印个语句看看
我也没捕获过段异常 关注中......
illuminati 2009-07-28
  • 打赏
  • 举报
回复

taodm 2009-07-28
  • 打赏
  • 举报
回复
try catch不是万能的。Segmentation fault 不是c++异常。
newpeng 2009-07-28
  • 打赏
  • 举报
回复
这么说 遇到 Segmentation fault,程序只有崩溃了?痛苦,这个错误只是长时间之后偶尔才会出现,不知道怎么调试。
手把手讲授如何搭建成功OpenVINO框架,并且使用预训练模型快速开发超分辨率、道路分割、汽车识别、人脸识别、人体姿态和行人车辆分析。得益于OpenVINO框架的强大能力,这些例子都能够基于CPU达到实时帧率。课程的亮点在于在调通Demo的基础上更进一步:一是在讲Demo的时候,对相关领域问题进行分析(比如介绍什么是超分辨率,有什么作用)、预训练模型的来龙去脉(来自那篇论文,用什么训练的)、如何去查看不同模型的输入输出参数、如何编写对应的接口参数进行详细讲解;二是基本上对所有的代码进行重构,也就是能够让例子独立出来,并且给出了带有较详细注释的代码;三是注重实际运用,将Demo进一步和实时视频处理框架融合,形成能够独立运行的程序,方便模型落地部署;四是重难点突出、注重总结归纳,对OpenVINO基本框架,特别是能够提高视频处理速度的异步机制和能够直接部署解决实际问题的骨骼模型着重讲解,帮助学习理解;五是整个课程准备精细,每一课都避免千篇一律,前一课有对后一课的预告,后一课有对前一课的难点回顾,避免学习过程中出现突兀;六是在适当的时候拓展衍生,不仅讲OpenVINO解决图像处理问题,而且还补充图像处理的软硬选择、如何在手机上开发图像处理程序等内容,帮助拓展视野,增强对行业现状的了解。基本提纲:1、课程综述、环境配置2、OpenVINO范例-超分辨率(super_resolution_demo)3、OpenVINO范例-道路分割(segmentation_demo)4、OpenVINO范例-汽车识别(security_barrier_camera_demo)5、OpenVINO范例-人脸识别(interactive_face_detection_demo)6、OpenVINO范例-人体姿态分析(human_pose_estimation_demo)7、OpenVINO范例-行人车辆分析(pedestrian_tracker_demo)8、NCS和GOMFCTEMPLATE9、课程小结,资源分享

64,654

社区成员

发帖
与我相关
我的任务
社区描述
C++ 语言相关问题讨论,技术干货分享,前沿动态等
c++ 技术论坛(原bbs)
社区管理员
  • C++ 语言社区
  • encoderlee
  • paschen
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
  1. 请不要发布与C++技术无关的贴子
  2. 请不要发布与技术无关的招聘、广告的帖子
  3. 请尽可能的描述清楚你的问题,如果涉及到代码请尽可能的格式化一下

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