GDB是一个由GNU开源组织发布的、UNIX/LINUX操作系统下的、基于命令行的、功能强大的程序调试工具。 对于一名Linux下工作的c/c++程序员,gdb是必不可少的工具;
二、gdb使用1,断点
设置断点:b 行号|函数|
清除断点:delete [breakpoints num] [range…]
显示断点:info breakpoints
条件断点:b fn1 if a>b
delete可删除单个断点,也可删除一个断点的集合,这个集合用连续的断点号来描述。例如:
delete 5delete 1-10
break n (简写b n):在第n行处设置断点(可以带上代码路径和代码名称: b OAGUPDATE.cpp:578)b fn1 if a>b:条件断点设置break func(break缩写为b):在函数func()的入口处设置断点,如:break cb_buttondelete 断点号n:删除第n个断点disable 断点号n:暂停第n个断点enable 断点号n:开启第n个断点clear 行号n:清除第n行的断点info b (info breakpoints) :显示当前程序的断点设置情况delete breakpoints:清除所有断点:
2,代码调试窗口
调出窗口:wh
退出窗口:ctl+x+a | ctl+x+A | ctl+x和ctl+a
调整窗口:winheight
[+ | -] <#lines> Window names are:
src : the source window
cmd : the command window
asm : the disassembly window
regs : the register display
3,单步执行
单步执行:n
4,进入函数
进入函数:s
5,打印变量
默认打印:p 变量
以16进制打印: p/a 变量