当前位置: 代码迷 >> 综合 >> linux app 无 core dump 退出的处理
  详细解决方案

linux app 无 core dump 退出的处理

热度:27   发布时间:2023-12-15 01:06:01.0

1,首先要淡定。
2,在程序退出之后马上echo $?,获得返回数字R。
3,计算信号码和退出码:
 R & 0x7f = signal_no
 (R & 0xff00) >> 8 = exit_no
4,这时就知道程序何故退出了。

至于我的状况,就是没有处理SIGPIPE,what a shame.
Add the following code and the app will be fine:
struct sigaction sa;
sa.sa_handler = SIG_IGN;
sigaction(SIGPIPE, &sa, 0);

Why here use sigaction() other than signal() ?
Someone said that in the latter case the designated signal handler may reume the default one when the signal was catched one time, so now you know why sigaction() was a better choice.