C++:如何使 "core" 转储文件在遇到新的崩溃时被覆盖?

C++: How to make "core" dump file being overwritten when new crash is encountered?

我有一个简单的 c 程序来测试 "core dump" 行为

$猫1.c

int main() 
{ 
   int buf[]={1,2}; 
   int j=buf[20000]+buf[30000]; 
   return 0; 
} 

我做到了:

$ ulimit -c unlimited 
$ gcc 1.c 
$ a.out 

生成核心文件,没问题。我又运行"a.out",这次没有覆盖之前的"core"文件,除非我手动删除core文件,然后生成新的core文件。

问题:如何设置 ubuntu linux 以确保每次发生崩溃时,新的核心转储文件都会覆盖旧的?

谢谢

您可以切换将 pid 添加到核心文件,这样每次程序以新的 pid 核心名称启动时都会有新的 pid 作为 'extension'

echo 1 > /proc/sys/kernel/core_uses_pid

此外,阅读 this 了解更多详情