core dumped未生成core文件


一、检查并启用核心文件生成

  1. 查看当前核心文件大小限制

    • 使用命令 ulimit -c 来查看系统允许的核心文件大小。如果返回值为0,则表示不生成核心文件。
  2. 临时设置无限制的核心文件大小

    • 在当前shell会话中执行 ulimit -c unlimited 可以临时移除对核心文件大小的限制,但这仅在当前shell会话期间有效。
  3. 永久设置无限制的核心文件大小

    • 编辑用户主目录下的 .bashrc 文件,在文件末尾添加 ulimit -c unlimited
    • 然后通过命令 source ~/.bashrc 或重新启动终端使更改生效,这样可以确保每次登录时都自动应用此设置。

二、指定核心文件生成路径

即使设置了无限制的核心文件大小,有时候还是看不到核心文件,这可能是由于核心文件被其他进程捕获或删除所致。因此需要明确指定核心文件的生成位置:

  • 作为root用户执行:使用命令 echo core > /proc/sys/kernel/core_pattern 来设定核心文件名为“core”,并且将其放置在当前工作目录下。完成后退出root模式,再次运行有问题的程序应该就可以看到核心文件了。

三、使用GDB调试核心文件

一旦获得了核心文件,就可以利用GNU Debugger (GDB) 来分析问题原因:

  • 启动GDB进行调试:例如,如果你有一个名为test的可执行文件,并且有一个名为core.1234的核心文件,那么你可以用命令 gdb test core.1234 开始调试。
  • 常用GDB命令
    • print var:打印变量var的值。
    • l(小写字母L):列出源代码中的出错部分,帮助定位问题所在。

core dumped未生成core文件

posted @ 2024-12-23 14:36  guanyubo  阅读(75)  评论(0编辑  收藏  举报