学习使用gdb主要还是记一些常用的命令:
第一步,你打算调试某个代码,编译的时候需哟加上-g选项,gcc test.c -o test -g,不加的话,调试过程中想要使用行号或者函数名,就会比较麻烦。
第二步,进入gdb调试界面,gdb后面直接加上文件名,如:gdb test,不过它会打印很多版本信息,也可以使用-q选项屏蔽它。
下面就是一些调试相关的命令:显示代码list,每次10行,也支持缩写l;
运行程序run;
打断点break,后面可以加行号或者函数名;
info break查看断点信息;
delete break删除断点,后面加上断点编号,程序运行起来后遇到断点会停住;
step单步运行,遇到函数调用会进入函数内部执行;
next也是单步执行,但是遇到函数不会进入;
继续运行程序continue;
查看变量值print;print i
查看变量的类型使用what is;what is i
当你不想再循环内单步调试的时候,可以快速跳出,until;
调试过程中,需要调用函数,call加函数名;call add(1, 2)
gdb也支持调试多线程:
info threads可以查看所有线程信息;
thread加线程号可以切换到对应的线程;