有没有办法知道您的应用程序中是否存在信号以及存在哪些信号?

有没有办法知道您的应用程序中是否存在信号以及存在哪些信号?

请参见`handle SIG33 pass nostop noprint` 在 gdb 中使用时会做什么。我从斯蒂芬·基特分享的答案中猜测,这个信息。关于信号位于源代码中的某处。如果我下载特定应用程序的源代码,例如 leafpadhttp://tarot.freeshell.org/leafpad/我如何搜索存在哪些信号。这个想法是为了更好地调试。

答案1

要查找给定应用程序自行处理的信号,请在源代码中查找sigaction并调用。signal库还可以设置信号处理程序,因此您确实也需要查看这些......

无需查看源代码,您可以查找那些strace对信号相关的系统调用具有特定支持的使用:

strace -e trace=signal ...

这将运行您的程序并转储所有与信号相关的系统调用的详细信息。由此您将能够确定使用了哪些信号。

相关内容