gpt4 book ai didi

linux - 为什么我的核心文件没有被覆盖?

转载 作者:太空宇宙 更新时间:2023-11-03 16:51:17 31 4
gpt4 key购买 nike

在 Ubuntu 12.04 上,打开一个新的文本文件并写入:

#include <stdlib.h>

int main()
{
abort();
return 0;
}

现在运行:

g++ yourfile.cpp

然后运行可执行文件,它将进行核心转储:

./a.out

现在检查文件的 mtime:

-rw-r----- 1 xxxxx xxxxx 228K 2012-10-01 19:20:20.752136399 -0500 core

现在再次运行可执行文件:

./a.out

现在再次检查时间:

-rw-r----- 1 xxxxx xxxxx 228K 2012-10-01 19:20:20.752136399 -0500 core

是一样的!为什么新核心不覆盖旧核心?重建时这会导致 gdb 提示核心比可执行文件旧。

为了确定这不是权限问题,我在/tmp 中的一个新目录中尝试了这个,并在里面运行了 chmod -R 777 **/*。运行两次可执行文件仍然没有产生新的内核 O_o 此外,ulimit -c 报告 800000000,对于这种大小的内核来说绰绰有余。

我还尝试使用 env - bash --noprofile --norc 运行一个干净的 bash,并且仍然运行二进制文件不会更新内核的 mtime,除非我先删除它。

最佳答案

如果你引用https://bugs.launchpad.net/ubuntu/+source/apport/+bug/160999这是 Ubuntu 中使用 O_EXCL 打开文件的错误,阻止它覆盖现有核心。

关于linux - 为什么我的核心文件没有被覆盖?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12666801/

31 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com