gpt4 book ai didi

核心转储不起作用

转载 作者:行者123 更新时间:2023-12-04 05:35:20 24 4
gpt4 key购买 nike

当我运行带有段错误的程序时,我收到一条错误消息 段错误:11 .出于某种原因,我没有收到(核心转储)消息。我尝试运行 shell 命令 ulimit -c unlimited ,但我仍然遇到相同的错误,并且没有说核心已转储。我是 GDB 的新手,所以我用一个简单的程序进行了尝试:

/* coredump.c */
#include <stdio.h>
int main (void) {
int *point = NULL;
*point = 0;
return 0;
}

但是当我编译时使用:
gcc coredump.c -g -o coredump

然后运行它,它仍然显示 segfault: 11
它是否仍在我不知道的地方创建核心转储?我希望能够使用 gdb coredump 核心 .

最佳答案

看看这个链接:

  • How to generate a core dump in Linux when a process gets a segmentation fault?

  • 选项包括:
  • ulimit -c 无限制(默认值 = 0:不生成核心文件)
  • 转储的目录必须是可写的。默认情况下,这是进程的当前目录,但可以通过设置/proc/sys/kernel/core_pattern 来更改。
  • 在某些情况下,/proc/sys/fs/suid_dumpable 中的内核值可能会阻止生成内核。
  • 其他选项的“man core”
  • find / -name core -print 2> /dev/null在您的文件系统中搜索核心文件

  • 我假设您正在运行 Linux,并且我假设您正在具有写入权限的目录中执行 .exe。

    所以我的前两个猜测是 1) “ulimit -c unlimited”没有被设置,或者被覆盖,或者 2) 正在生成核心文件,但是去“其他地方”。

    以上建议应该会有所帮助。请回帖您发现的内容!

    关于核心转储不起作用,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12020484/

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