一尘不染

从进程内部转储Linux核心文件的好方法是什么?

linux

我们有一台服务器(用C和C
++编写),当前可以捕获SEGV并将一些内部信息转储到文件中。我想生成一个核心文件,并在捕获SEGV时将其写入磁盘,因此我们的支持代表和客户不必大惊小怪的ulimit,然后等待崩溃再次发生才能获得核心文件。过去我们使用过abort函数,但是它受ulimit规则的约束,无济于事。

我们有一些旧的代码可以读取/ proc / pid /
map并手动生成一个核心文件,但是它已经过时了,并且似乎不太便于移植(例如,我猜想它在我们的64位系统中将无法工作构建)。在Linux进程中生成和转储核心文件的最佳方法是什么?


阅读 286

收藏
2020-06-03

共1个答案

一尘不染

Google有一个库,用于从运行中的进程google-
coredumper中生成coredump
。这应该忽略ulimit和其他机制。

生成核心文件的调用的文档在此处。根据文档,似乎不能在信号处理程序中生成核心文件,尽管不能保证始终工作。

2020-06-03