在正常编写代码时,不论是写项目还是刷题。都会遇到输出与预期不符,段错误等等情况。在这里纪录一下GDB学习笔记
吐核:
操作系统的内核会纪录程序运行过程中所有的行为,资源申请,内存使用情况等,
当程序出现异常,会把这些纪录到core文件中
ubuntu为了操作体验,不吐核
使用GDB的步骤
gdb配合core快速定位错误:
1.编译代码添加调试信息
gcc -g xxx.c
2.重新执行程序,让系统吐出带调试信息的core文件
./a.out
3.使用gdb+core文件调整程序,找出错误位置
gdb ./a.out core
4.使用run/where命令找出错误位置
(gdb)
run||where(查询错误位置)
q(退出) 如果程序执行完毕,直接退出,否则需要确认
1(显示最近10行代码)
1 n (显示第n行附近代码)
5.打断点
b n/func 可以让程序在第n行或某个函数停止下来
6.调试
run 直接执行程序,直到断点停止
start 执行程序,在程序第一行停下
n/next
s/step 单步执行
print+变量 输出变量的值
set var 变量名=xxx
7.调用函数
call func()
#大师兄