从大型崩溃中提取堆栈跟踪



我在上安装了一个崩溃处理程序

/proc/sys/kernel/core_pattern

它通过管道将传入的coredump传输到一个文件,然后通过gdb提取stacktrace。

问题是,有时这些核心转储可能非常非常大(通常超过30GB)。在这些情况下,在应用程序挂起之前,用户会在将coredump写入磁盘时等待。

关于如何以非阻塞的方式处理这些非常大的核心转储,有什么建议吗?我不在乎核心转储本身,堆栈竞争才是有价值的。

我无法访问来源,所以答案如下https://serverfault.com/questions/627747/non-blocking-core-dump-on-linux不是那么实用。

谢谢!

我无法访问来源,所以答案如下https://serverfault.com/questions/627747/non-blocking-core-dump-on-linux不是那么实用。

如果应用程序是动态链接的,那么您可以LD_PRELOAD将coredumper搜索到其中,因此答案在一定程度上是实用的。

另一种可能的选择是http://github.com/tbricks/tbstack.

当然,为了扔掉大部分内存而丢弃30GB的RAM是浪费。

相关内容

  • 没有找到相关文章

最新更新