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 @   guanyubo  阅读(277)  评论(0编辑  收藏  举报
相关博文:
阅读排行:
· 全程不用写代码,我用AI程序员写了一个飞机大战
· DeepSeek 开源周回顾「GitHub 热点速览」
· 记一次.NET内存居高不下排查解决与启示
· MongoDB 8.0这个新功能碉堡了,比商业数据库还牛
· .NET10 - 预览版1新功能体验(一)
点击右上角即可分享
微信分享提示