调试器gdb的使用
转载请注明原文链接:http://www.cnblogs.com/zlc1989/admin/EditPosts.aspx?postid=2951701&update=1
gdb是GNU发布的linux下的字符界面调试工具。如果想使用图形界面的调试工具,可以再自己的linux系统上安装DDD(Data display debugger)。
1. gdb基本命令
首先gdb中的命令都是支持缩写形式的,比如"l"代表"list"、"b"代表"breakpoint"等。下面就列出gdb常用的几条命令,学会了它们基本能满足调试工作。
|
命令 |
示例 |
解释 |
|
list(l) |
(gdb) list |
列出源代码 |
|
file filename |
(gdb) file name |
装入想调试的可执行文件。没指定路径时是加载当前目录下的文件 |
|
run(r) |
(gdb) r |
执行被调试的程序。无断点的情况下是跑完整个程序,有断点时停留在第 一个断点处 |
|
continue(c) |
(gdb) c |
跳过某处断点继续执行程序,直到下个断点处或者是程序结束 |
|
b (filename:)行号 b (fliename:)函数名 b 行号或函数名 if condition condition 断点号<条件表达式> tbreak (filename:)行号或函数名 delete 断点编号 |
(gdb) b 8 (gdb) b main (gdb) b 8 if i==10 (gdb) condition 1 i==10 (gdb) tbreak 8 (gdb) d 2 |
分别是按行设置断点、设置函数断点、设置条件断点;tbreak设置的是临时断点,到达后就会被自动删除;delete(d)删除掉指定编号的断点 |
|
step next finish |
(gdb) s (gdb) n (gdb) f |
step:执行一行源程序代码,如果此行代码中有函数调用,则进入该函数;next:执行一行源程序代码,此行代码中的函数调用也一并执行;finish:运行程序,直到当前函数完成返回。注:这两个命令必须在有源代码调试信息的情况下才可以使用(GCC编译时使用“-g”参数) |
|
print 表达式或变量 |
(gdb) i |
显示指定变量(临时变量或全局变量)、表达式的值。 |
|
display 变量或表达式 undisplay 编号 |
(gdb) display i (gdb) display $pc (gdb) undisplay 1 |
程序停住时,或者单步跟踪时,希望一些变量会自动显示;删除自动显示 |
|
info |
(gdb) i b |
用于显示各类信息,比如断点信息 |
|
quit |
(gdb) q |
退出GDB调试环境 |

浙公网安备 33010602011771号