您的位置:首页 > 其它

调试器gdb的使用

2013-03-10 09:59 771 查看
转载请注明原文链接: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调试环境

[align=center]2. gdb中运行shell程序[/align]
[align=center] 在gdb中,可以执行linux的shell命令,格式:shell <command string>
[/align]
[align=center] 例如,(gdb) shell ls[/align]
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: