从 Coredump 中查找 UNIX 信号的来源

ult*_*use 5 unix crash gdb coredump signals

这是我心中长久以来悬而未决的问题。我看到 GDB 告诉我们导致进程终止的信号。

如何找到来自内核的信号源?

在两个不同的场合,我的两个应用程序收到了 SIGEMT 和 SIGUSR1。我知道生产中还有其他应用程序可以发送这些信号。

另外,我知道可以在正在运行的程序中看到发件人信息,并且数据将出现在 siginfo_t 结构中。但我没有那么奢侈,事实上我们根本没有处理这个信号的处理程序。

Tom*_*mey 6

最新版本的 Linux 内核将此信息存储在核心文件中。而且,最新版本的 gdb 可以读取它。然后,您可以print $_siginfo像在实时调试时一样使用核心文件。