gdb基本使用
前提
gcc/g++编译出的程序默认是realease版本,要使用gdb调试,首先要在编译的时候加上-g
选项。
使用readelf -S [程序名]
查看可执行文件的节区信息。
使用
-
gdb [程序名]:开始调试。
-
q:退出调试。
-
list/l [行号]:从给定的位置显示程序的源代码,每次十行。
-
break/b [行号]:在给定的位置打断点,会形成一个断点编号。
-
info b:查看已打的断点。
-
d [断点编号]:不指定断点编号的话就是删除所有断点,否则删除指定断点。
-
run/r:运行到断点处。
-
next/n:逐过程,不进入函数内部。
-
step/s:逐语句,进入函数内部。
-
continue/c:直接运行到下一个断点处。
-
bt:查看调用堆栈。
-
finfish:若进入了函数的内部,可以使用该命令执行到函数的末尾。
-
p [变量名]:查看变量的值。
-
display [变量名]:跟踪查看一个变量,每次停下来都显示它的值。
-
undisplay:取消对跟踪变量的查看。
-
until [行号]:跳转到指定行。
gdb会记录上次执行的指令,直接按回车键就可以重复执行。