**
learn_GDB
**
一、功能
一般来说,GDB主要帮助你完成下面四个方面的功能:
1、启动你的程序,可以按照你的自定义的要求随心所欲的运行程序。
2、可让被调试的程序在你所指定的调置的断点处停住。(断点可以是条件表达式)
3、当程序被停住时,可以检查此时你的程序中所发生的事。
4、你可以改变你的程序,将一个BUG产生的影响修正从而测试其他BUG。
二、常用参数列表
命令 命令缩写 命令说明
list l 显示多行源代码
break b 设置断点,程序运行到断点的位置会停下来
info i 描述程序的状态
run r 开始运行程序
display disp 跟踪查看某个变量,每次停下来都显示它的值
step s 执行下一条语句,如果该语句为函数调用,则进入函数执行其中的第一条语句
next n 执行下一条语句,如果该语句为函数调用,不会进入函数内部执行(即不会一步步地调试函数内部语句)
print p 打印内部变量值
continue c 继续程序的运行,直到遇到下一个断点
set var name=v 设置变量的值
start st 开始执行程序,在main函数的第一条语句前面停下来
file 装入需要调试的程序
kill k 终止正在调试的程序
watch 监视变量值的变化
backtrace bt 产看函数调用信息(堆栈)
frame f 查看栈帧
quit q 退出GDB环境
三、其他
1、gdb test.c //启动gdb调试程序test.c
2、line //从第一行开始列出源码,按回车可重复执行该命令
3、break 16 //在第16行设置断点
4、break func //在函数func处设置断点
5、info break //查看断点信息
6、run //运行程序并在断点处停住
7、next //单条语句执行
8、continue //继续运行程序,在下个断点停住,无断点则运行完程序
9、print if //打印变量i的值
10、finish //退出当前函数
11、q //退出GDB
12、直接回车表示重复上一次命令