【发布时间】:2016-01-26 02:21:28
【问题描述】:
我正在分析一组有缺陷的程序,在某些测试下它们可能会因段错误而终止。段错误事件记录在/var/log/syslog。
例如下面的 sn -p 返回Segmentation fault 并被记录。
#!/bin/bash
./test
我的问题是如何抑制段错误,使其 不 出现在系统日志中。我尝试trap 在以下脚本中捕获信号:
#!/bin/bash
set -bm
trap "echo 'something happened'" {1..64}
./test
返回:
Segmentation fault
something happened
所以,它确实捕获了段错误,但段错误仍然被记录。
kernel: [81615.373989] test[319]: segfault at 0 ip 00007f6b9436d614
sp 00007ffe33fb77f8 error 6 in libc-2.19.so[7f6b942e1000+1bb000]
【问题讨论】:
-
您的 shell 脚本可能会收到一个 SIGCHLD。 SIGSEGV 被执行
./test的子shell接收到
标签: linux bash segmentation-fault signals