GDB调试命令

查看文件

list命令可以查看源码。

启动GDB后第一个list命令会定位到main函数,以main函数为中心显示上下共10行代码。下一个list命令查看下面的10行。可以重复执行这个命令,直到到达文件尾。

命令 含义
list 查看前10行代码
list n 命令显示以第n行为中心的上下共10行代码
list n, 显示以第n行开头的10行代码
list ,n 显示以第n行结尾的10行代码
list m,n 显示以第m行开头,第n行结尾的代码
list function 以函数function为中心的上下10行代码,f可以是其它文件里定义的函数
list file:line 显示文件file里的第line行代码
list file:function 显示文件file里的函数function的代码

运行调试

命令 含义
gdb filename 启动gdb,调试可执行文件filename
run 命令启动程序
run arg1 arg2 ... 可以给程序传入参数
step 单步执行,遇到子函数就进入并且继续单步执行
next 在函数内遇到子函数时不会进入子函数内单步执行
continue 运行到下一个断点

断点

命令 含义
info breakpoints 查看目前设置的断点,设置断点时,每个断点被赋予一个从1开始的编号,使用这个编号来标识断点
disable n 禁掉编号为n的断点
enable n 使能编号为n的断点
break n 在当前文件的第n行设置断点
break function 在函数上设置断点
break file:function 在文件里的函数上加断点

不带参数的break在当前行加上断点。

break可以选择性地中断,使用break n if ...的形式。比如 b 13 if i > 5

clear可以删除断点,是break的逆过程

delete也可以删除断点,但是它的参数是断点的编号,比如delete 5删除第5个断点。

不带编号的delete删除所有的断点。

观察变量

命令 含义
ptype var 查看变量var的类型,简写为pt
print var 查看变量var的值,简写成p

可以设置打印变量的格式,此处不介绍。

多线程:

(22条消息) 【GDB】GDB多线程查看线程堆栈|GDB 调试多线程和多进程总结_bdview的博客-CSDN博客

参考文献:

  1. GDB 查看源码
  2. GDB断点使用
  3. GDB观察改变变量

你可能感兴趣的:(GDB调试命令)