1. 什么是core dump?
core dump说的是操作系统执行的一个动作,当某个进程因为一些原因意外终止(crash)的时候,操作系统会将这个进程当时的内存信息转储(dump)到磁盘上,产生的文件就是core文件了,一般会以core.xxx形式命名。
2. 那些信号能够引起core dump?
经常用到的主要有这几种:
SIGSEGV 建立CORE文件 段非法错误
SIGILL 建立CORE文件 非法指令
SIGTRAP 建立CORE文件 跟踪自陷
SIGBUS 建立CORE文件 总线错误
SIGFPE 建立CORE文件 浮点异常
SIGIOT 建立CORE文件 执行I/O自陷
具体的那些信号能产生core,可以在终端执行命令“man 7 signal”查看。
3. 设置生成core文件的环境
ulimit -c :查看core文件的大小的限制
ulimit -c unlimited :设置core文件的大小为不限制
4. 调试core文件的相关命令
4.1 启动命令:gdb exe_name core_name
4.2 具体的调试命令:
backtrace :查看堆栈信息,可以简写成bt
where : 同bt
frame num :查看堆栈中第num个frame的信息,frame可以简写成f
focus num :查看堆栈中第num个frame的具体代码信息,focus可以简写成foc。