我们有一个服务器(用C和C++编写),它当前捕获一个SEGV并将一些内部信息转储到一个文件中.我想生成一个核心文件,并在我们捕获SEGV时将其写入磁盘,因此我们的支持代表和客户不必为ulimit大惊小怪,然后等待崩溃再次发生以获得核心文件.我们过去曾使用过中止功能,但它受到ulimit规则的约束并没有帮助.
我们有一些读取/ proc/pid/map并手动生成核心文件的遗留代码,但它已经过时了,并且看起来不太便携(例如,我猜它在我们的64位中不起作用)编译).在Linux进程中生成和转储核心文件的最佳方法是什么?