本文简单介绍core文件与gdb调试core文件的方法
概要:
1. core 文件
2. 配置core程序崩溃时产生文件
3. 可修改core文件名
4. 产生core文件的情形
5. gdb调试core文件
a) gdb -c [可执行程序]
b) gdb命令:backtrace / bt
c) gdb命令:up/down/frame
d) gdb命令:info locals
e) gdb命令:info args
f) gdb命令:print / print *
1. core 文件
linux/unix下,可执行程序崩溃时会产生core文件。core文件是内存映象,可用于调试程序找出程序崩溃的原因。
2. 配置core程序崩溃时产生文件
linux/unix下,通过limit -a,可以查看系统是否对可程序的崩溃生成core文件。其中core file size 便是指产生core文件的大小。下面是freebsd系统中输出limit -a 输出的一行,unlimited表示不限制,如果 unlimited 为 1024,则表示产生core文件最大为 1024块,每块大小为512字节。如果为0,则表示不产生core文件。core file size (512-blocks, -c) unlimited
core file size (512-blocks, -c) 1024
core file size (512-blocks, -c) 0
通过limit命令,可以改变设置。如 ulimit -c unlimited 或 limit -c 1024等。
3. 可修改core文件名
core文件产生于程序的工作目录,不通系统命名不一样 freebsd 下,默认命名为 程序名.core ,这个名称是可以修改的。freebsd下,通过 man core 可以知道,通过sysctl可以查看core文件名的规则和对其进行修改。下面是指core文件名组成是 程序名.core。
root@freebsd:/ # sysctl -a | grep corefile
kern.corefile: %N.core
freebsd下查看 man core,可以知道core文件命名时可用的规则:
The name of the file is controlled via the sysctl(8) variable
kern.corefile. The cont