吐核:
操作系统会记录运行过程中所有行为、资源申请、内存使用情况,当程序出现异常情况时,操作系统就会把它记录的情况写入到core文件,这个行为叫吐核。
ubuntu系统为了让用户有良好的体验,默认设置为不吐核
在命令行执行:ulimit -c unlimited,该命令只是临时有效,如果想长期有效需要把它写入终端配置文件。
1、打开终端配置文件:vim ~/.bashrc
2、在文件的末尾添加:ulimit -c unlimited
3、执行加载配置文件命令:source ~/.bashrc
gdb配合core文件快速定位错误:
1、编译代码时添加调试信息
gcc -g xxx.c
2、重新执行程序,让系统吐出带调试信息的core文件
./a.out
3、使用gdb+core文件调整程序,找出错误位置
gdb ./a.out core
4、使用run/where命令找出错误位置,q退出
(gdb) run|where|q
gdb调试程序:
1、编译代码时添加调试信息
gcc -g xxx.c
2、使用gdb装载可执行程序
gdb ./a.out
3、阅读代码
l ---->显示最近十行代码
l n ---->显示第n行附近的代码
4、打断点
b n/func 可以让程序在第n行或某个函数停止下来
5、执行程序
run 直接执行程序,遇到断点停止
start 开始执行程序,在程序的第一行代码停下来,等待命令
5、单步执行
n/next
s/step 执行函数调用时单步
6、查看变量的值
p/print 变量名
7、设置变量的值
set var 变量名=xxx
8、调用函数
call 函数名(参数)
9、跳到下一个断点
c/contiune
10、查看断点
info b
11、删除断点
d 断点编号
12、退出
q/quit