1 启动gdb
+ gdb 程序名
2 载入程序
+ file 程序名
3 退出gdb
+ quit Ctrl-D
4 运行程序
+ run + 参数
5 查看程序信息
+ 查看断点信息 info br
+ 查看当前源程序 info source
+ 查看堆栈信息 info stack
+ 查看当前的参数 info args
6 列出一段源程序
+ 列出某个函数 list FUNCTION
+ 列出某行函数 list LINENUM
+ 接着前一次继续显示 list
+ 显示前一次之前的源程序 list -
+ 显示另一个文件的一段程序 list FILENAME:FUNCTION or list FILENAME:LINENUM\
7 设置断点
+ 在函数入口设置断点 break FUNCTION
+ 在当前源文件某行上设置断点 break LINENUM
+ 在另一源文件的某行设置断点 break FILENAME:LINENUM
+ 在某个地址上设置断点 break *ADDRESS
+ 条件断点 break ..if COND
+ 删除断点 delete BREAKNUM
8 设置监视点
+ watch EXPRESSION
9 检查数据
+ print exp
10 修改变量值
+ set varible=value
10 检查内存值
+ x /NFU ADDR
其中x是examine的意思,N代表重复数,F代表输出格式(见2.13),U代表每个数据单位的大小。U可以去如下值:
b :字节(byte)
h :双字节数值
w :四字节数值
g :八字节数值
因此,上面的指令可以这样解释:从ADDR地址开始,以F格式显示N个U数值。
例如:x/4ub 0x4000
会以无符号十进制整数格式(u)显示四个字节(b),0x4000,0x4001,0x4002,0x4003。
11 单步执行指令
+ step 跟踪进入一个函数
+ next 则不会进入函数
12 继续执行指令
+ continue