gdb
调试程序需要传入参数:
在运行前 set args …(需要传入的参数
代码查看:
list ==》从main函数开始查看代码
show listsize ==》显示当前 l 查看代码会显示多少行
set listsize 20 ==》 设置 l 显示为20行
list 行号 ==》显示该行号的上下文代码
list 函数名 ==》查看函数
list 文件名:行号
list 文件名:函数名
断点相关操作:
break 行号
break 函数名
break 文件名:行号
break 文件名:函数名
i break ==》查看断点编号
del 断点编号 ==》删除断点
del 断点号1 断点号3 ==》删除多个断点
del 断点号1-断点号4 ==》1到4的断点全部删除
break fileName: 行号 ==》设置那个文件中的断点
dis 断点编号 ==》设置断点为无效
ena 断点编号 ==》设置断点为有效
break 17 if i == 10 ==》当i 等于10的时候弟17行才停
continue ==》断点处继续往下执行
设置变量值的自动显示:
ptype 变量名 ===》查看变量类型
display 变量名 ==》自动打印该变量的值,用在循环中
i display ==》查看display编号
undisplay display编号 ==》取消display打印
step ==》碰见函数名,直接step可以直接进入函数体内部
finish ==》从函数体中跳出来(函数中不能有断点)
格式化输出:
print “%s\n”, name
其它:
r ==》运行
start ==》只启动一行
set var i=5 ==》直接设置变量值i=5
until ==》跳出循环(循环中不能有断点)
q ==》退出