a
$gdb //命令行敲入gdb即可启动gdb工具
(gdb)file //载入待调试程序加载待调试程序的符号表
(gdb)run //执行当前被调试程序
(gdb)kill //终止当前被调试程序进程
(gdb)shell gcc -g *.cpp //不退出gdb而执行外部的shell命令
(gdb)quit //退出gdb工具
$gdb
(gdb)file ./a.out
Reading symbols from ./a.exe...done.
(gdb)list //列出当前执行焦点(即就是当前所执行的代码行)附近的代码,list默认显示10行代码
(gdb)list + //列出当前执行焦点之后的代码行
(gdb)list - //列出当前执行焦点之前的代码行
(gdb)list <begin,end> //列出行号从begin到end的代码行
(gdb)list <function_name> //列出指定的函数代码行
(gdb)show listsize //用show命令可以查看list命令可显示的代码总行数
(gdb)set listsize <size> //用set命令可以设置list命令可显示的代码总行数
(gdb)run //Start debugged program. 即运行待调试程序
(gdb)next //单步调试,不进入被调函数
(gdb)step //单步调试,进入被调函数
(gdb)watch <variable> //监视指定变量的值
(gdb)print <variable> //立即打印指定变量的值
(gdb)break <line_no> //在行号为line_no的代码行设置断点
(gdb)break <function_name> //在调用被调函数function_name之前设置断点
(gdb)break <line_no or function_name> if <condition> //如果condition为真,那么在指定位置设置断点并停住.
//例如: break 15 if i = nLen
(gdb)info break //用info命令可以立即打印出断点列表
(gdb)disable breakpoint <breakpoint_no> //根据断点编号禁用指定断点
(gdb)enable breakpoint <breakpoint_no> //根据断点编号激活指定断点
(gdb)delete breakpoint <breakpoint_no> //根据断点编号删除指定断点,如果不给出断点编号,那么删除所有断点
(gdb)clear <line_no or function_name> //Clear breakpoint at specified line or function.
(gdb)continue //从当前断点处继续运行