使用gdb可以在命令行方便地调试,并且能以命令程序的方式调试源代码。
常用命令简写print-p,step-s,next-n
进入gdb
//方式一 gdb test//test 为可执行文件,使用-g编译得到 //方式二 gdb -q //不显示版权信息 file test //file命令打开文件
退出gdb
quit //退出命令
显示源代码
list//显示最初10行 list get_sum//显示函数 list 5,10//显示5到10行 list//再次用list,显示接下来11~20行 list test.c:get_sum//多文件工程时,显示test.c的函数
查找
search 字符串//向后查找第一个匹配字符串 reverse-search 字符串//向前查找
设置断点
break 7 //在第7行设置断点 break get_sum //在函数设置断点 break 7 if i==2 //根据条件设置断点
watch i //对变量设置断点,当变量变化时暂停运行 watch i if i==0 //watch后面可以添加条件语句
查看变量值和类型
print i //查看变量i的值 whatis i+get_sum //查看变量或者表达式的类型 p *p@len //打印长度为len 的数组,p为指向数组头地址的指针。//如果p不是指针而是数组名,则直接p 数组名即可
运行控制
run //运行 continue //继续运行 next //执行下一条语句,函数当做一条语句 step //单步,遇到函数则进入函数
断点管理
info breakpoints //查看当前所有断点 disable 断点编号//使断点无效 enable 断点编号//断点有效 clear 断点编号//取消断点
改变变量值
set variable i = 0 //设置变量值