按信号过滤数百个核心转储

按信号过滤数百个核心转储

如果我在一个目录中有数百个核心转储,并且希望将其过滤为仅由特定信号生成的核心转储,而不必一次在 GDB 中手动打开每个核心转储,有没有办法做到这一点?

GDB 确实允许您通过 -ex 标志传递命令,但 GDB 的输出不会进入控制台,所以我不能只在所有文件上运行它并 grep 结果。

答案1

部分答案:

我注意到您正在使用条件子句,因此如果尚未生成核心转储,最简单的方法是在生成它们时在名称中包含信号。man 5 core详情请参阅。

如果您已经拥有它们,请查看核心格式的详细信息(参见例如这里)。我假设信号编号位于各个siginfo_t注释条目中(但没有验证这一点),因此以任何对您来说足够快的方式提取它们(如果需要,可以自定义 C 程序),并过滤您想要的信号。

相关内容