是否有可能通过程序的子进程捕获接收到的信号(特别是SIGSEGV,SIGABRT),而无需实际修改它(或进行最少的修改)? 我正在讨论的程序是一个非常复杂的工具,我不具备低级(实现细节)知识。我有权访问其源代码。我可以使用如下命令启动它:
$ ./tool_name start # tool_name is an executable created after compiling and building its source code
它要求许多子进程,我想看看这些子进程是否被信号杀死。
我想到的是创建一个简单的C程序并通过它调用上面的命令(使用system())。为我正在寻找的上述信号写一个信号处理程序,并做其他事情。是跟踪子进程收到的信号的正确方法吗?还有更好的方法吗?