gdb调试
- 生成可执行文件之前必须加参数
-g
- 启动gdb
gdb program
(program也就是可执行文件)
- 程序运行参数
set args
可指定运行时的参数。如:set args 10 20 30 40 50
show args
命令可以查看设置好的运行参数run
启动程序
- 设置断点
b 10
在源程序第10行设置断点b func
在func
函数入口处设置断点b filename:linenum
在源文件filename
的linenum
行处停住b filename:function
在源文件filename
的function
函数的入口处停住b class::function或function(type,type)
在类class
的function
函数的入口处停住
- 查询断点
info b
- 条件断点
b test.c:8 if a = 5
- 维护停止点
delete 1-3
删除编号1到3的断点disable 1-3
停止编号1到3的断点(未删除)enable 1-3
开始执行停止的1到3号的断点
- 调试代码
r
运行n
单步跟踪,不会进入函数体s
单步跟踪,会进入函数体finish
退出进入的函数continue
跳出循环,继续运行程序
- 查看运行时数据
p count
打印count
的值
- 自动显示
display 变量名
info display
查看display设置的自动显示的信息delete display dnums
删除自动显示,dnums
为所设值好的编号。disable display dnums
使其失效,但不删除enable display dnums
使其恢复
- 查看变量类型
ptype width
查看变量width
的类型
- 显示源代码
list linenum
显示行号为linenum
附近的代码list function
显示函数function
的代码