目录
查看当前核心文件大小限制: 临时设置无限制的核心文件大小: 永久设置无限制的核心文件大小: 即使设置了无限制的核心文件大小,有时候还是看不到核心文件,这可能是由于核心文件被其他进程捕获或删除所致。因此需要明确指定核心文件的生成位置: 一旦获得了核心文件,就可以利用GNU Debugger (GDB) 来分析问题原因:
一、检查并启用核心文件生成
ulimit -c
来查看系统允许的核心文件大小。如果返回值为0,则表示不生成核心文件。
ulimit -c unlimited
可以临时移除对核心文件大小的限制,但这仅在当前shell会话期间有效。
.bashrc
文件,在文件末尾添加 ulimit -c unlimited
。source ~/.bashrc
或重新启动终端使更改生效,这样可以确保每次登录时都自动应用此设置。二、指定核心文件生成路径
echo core > /proc/sys/kernel/core_pattern
来设定核心文件名为“core”,并且将其放置在当前工作目录下。完成后退出root模式,再次运行有问题的程序应该就可以看到核心文件了。三、使用GDB调试核心文件
test
的可执行文件,并且有一个名为core.1234
的核心文件,那么你可以用命令 gdb test core.1234
开始调试。
print var
:打印变量var
的值。l
(小写字母L):列出源代码中的出错部分,帮助定位问题所在。