启动GDB
file exe_file #file 可执行二进制文件名
然后就是要设置断点,程序中断后才能调试。
在gdb中,断点通常有三种形式:
断点(BreakPoint):
在代码的指定位置中断,这个是我们用得最多的一种。设置断点的命令是break,它通常有如下方式:
- break <function> 在进入指定函数时停住
- break <linenum> 在指定行号停住。
- break +/-offset 在当前行号的前面或后面的offset行停住。offiset为自然数。
- break filename:linenum 在源文件filename的linenum行处停住。
-
b func_name 在函数入口设置断点
例:b main #breakpoint main()
b 16 #在源程序第15行处设置断点
b filename:行数 #对函数某一行打断点
PS:直接在gdb环境下回车表示重复上一条命令
其他常用命令
l #罗列当前代码信息
info b #断点信息
info threads
r / run
p #print查看运行的变量
p var
s #单步进入函数体 stepin 可简写s
n # next 执行下一步
c #continue 跳到下一个断点
d (el)断点的号码
bt #堆栈信息