gpt4 book ai didi

c - 无法更改核心转储文件的文件名

转载 作者:塔克拉玛干 更新时间:2023-11-03 00:52:37 26 4
gpt4 key购买 nike

我做了以下修改:

  1. 编辑文件 /etc/security/limits.conf,使核心文件大小“无限制”。使用显示为“无限制”的命令 #ulimit -c 对其进行了验证。

  2. 按照以下内容附加文件 /etc/sysctl.conf:
    kernel.core_uses_pid = 1
    kernel.core_pattern =/tmp/%e.core.%p
    fs.suid_dumpable = 2
    使用 sysctl -p

  3. 保存更改
  4. 编译文件如下:
    $gcc -g pointer.c -o pointeraccess
    结果-编译成功

  5. 在GDB中执行文件如下:
    $gdb 指针访问

得到算术异常后,输出如下:

(gdb) run

Starting program: /media/anand/d258641a-8cc6-4fcf-96e4-

ce7a147cb34e/Important/Debugging Workspace/pointeraccess

Program received signal SIGFPE, Arithmetic exception.

0x08048477 in main () at pointeraccess.c:13

13 i=i/0;

(gdb) gcore

Saved corefile core.1880

我的问题是:为什么文件名是 core.pid 而不是 program_name.core.pid

最佳答案

更新核心模式:

echo "core.%e.%p">/proc/sys/kernel/core_pattern

%e表示二进制名称

通过上述模式,我能够转储包含可执行文件名称和 pid 的核心。

编辑:

在 GDB 之外运行它会导致核心文件中的文件名。使用 GDB 运行它,我想 gcore 会控制。

关于c - 无法更改核心转储文件的文件名,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29765169/

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