接收到SIGABRT信号,怎么才能让程序不要abort?

myra1200 2004-03-05 10:01:30
接收到SIGABRT信号,怎么才能让程序不要abort,而是正常退出?
接收到SIGABRT信号,说明检测出程序有问题,那么怎么样才能通过SIGABRT信号发现程序到底什么地方出错?
...全文
3824 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
caiyuanyuan 2004-04-07
  • 打赏
  • 举报
回复
up
anonimousboy 2004-04-05
  • 打赏
  • 举报
回复
在程序中注册这个信号,为该信号写自己的相应函数就可以了!
就是cary8060的那种写法!
tkit 2004-04-05
  • 打赏
  • 举报
回复
ulimit -c unlimited
然后一旦出错就会有coredump文件产生,假设叫core1111,然后:

gdb your_app core1111

就会在上次错误地方停下,记得编译时加上-g选项
cary8060 2004-04-04
  • 打赏
  • 举报
回复
mian函数中:signal(SIGUSR2, sig_quit);
void sig_quit( int signo )
{
// 设置退出标志
g_ExitFlag = 1;

// 向各线程发终止信号
printf("************USER2OK!!!!!******************\n");
return;
}
kill -USR2 pidid就可以了
jkjium 2004-04-04
  • 打赏
  • 举报
回复
在程序中捕捉或者把它加到进程的sig mask中去

23,124

社区成员

发帖
与我相关
我的任务
社区描述
Linux/Unix社区 应用程序开发区
社区管理员
  • 应用程序开发区社区
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

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