环境:Ubuntu 10.10
用户:root
1,设置允许产生的core dunp文件大小,系统默认是0,这样系统就不dump出core file,使用以下命令修改允许core dump的文件大小:
ulimit -c 10000
该命令只对当前的窗口有效。
2,默认情况下,core dump生成的文件名为core,而且就在程序当前目录下。
通过修改/proc/sys/kernel /core_uses_pid文件,可以将进程的pid作为作为扩展名,生成的core文件格式为core.xxx,其中xxx即为pid
echo "core.%p" > /proc/sys/kernel/core_pattern
备注:
1)网上有对/proc/sys/kernel/core_uses_pid修改的描述,目前测试发现不需要修改此文件。
2)对于1和2的修改,若要重启生效,都需要将命令加入到.bashrc中,如下:
3,运行程序产生core文件,然后使用gdb加载该core文件,如下:
gdb a.out core.4498
接下来可以使用bt打印函数调用栈信息,如下:
然后可以使用frame等命令选择当前需要查看的栈桢的运行信息。