对话、陷阱和 SIGTRAP

seb*_*elk 5 bash trap dialog sigtrap

我已经看到了很多使用对话框工具将脚本写入脚本的示例,如下所示:

trap "rm $datafile" 0 1 2 5 15
Run Code Online (Sandbox Code Playgroud)

我不明白的是SIGNAL 5的含义,好吧我知道是SIGTRAP。但我很惭愧,我仍然不明白它的真正意义......

提前致谢!!

And*_*ese 6

有一个联机帮助页signal(7)

Signal         Value   Action   Comment
SIGTRAP        5        Core    Trace/breakpoint trap
Run Code Online (Sandbox Code Playgroud)

此信号(如联机帮助页所建议的)主要由调试工具使用,例如gdbstrace,分别是ptrace(2)系统调用。如果一个进程通过 跟踪另一个进程的活动ptrace(2)SIGTRAP将被大量用于“中断”子进程,即使在大多数情况下子进程不会有效地知道发生了这种情况(通过监视的进程ptrace(2)不一定会注意到哪个信号已发送到它,因为跟踪器能够拦截和过滤传递的信号,SIGTRAP主要用于通知跟踪器发生了一些值得注意的事情)。

ptrace(2)在这种情况下,查看联机帮助页非常有启发性。