没有合适的资源?快使用搜索试试~ 我知道了~
Linux/GDB调试实用教程

温馨提示


试读
29页
从网上搜集的GDB的资料,辛辛苦苦排了一晚上的版,方便打印 文章本身对GDB的调试讲的比较透彻,感觉很适合新手入门使用。
资源推荐
资源详情
资源评论


















用 GDB 调试程序
2、一个调试示例...............................................................................................................................3
3、使用 GDB......................................................................................................................................6
4、GDB 的命令概貌..........................................................................................................................7
5、GDB 中运行 UNIX 的 shell 程序.................................................................................................8
6、在 GDB 中运行程序.....................................................................................................................9
7、调试已运行的程序.......................................................................................................................9
8、暂停/恢复程序运行......................................................................................................................9
8.1、设置断点(Break Points).............................................................................................10
8.2、设置观察点(WatchPoint)...........................................................................................10
8.3、设置捕捉点(CatchPoint)............................................................................................11
8.4、维护停止点......................................................................................................................11
8.5、停止条件维护..................................................................................................................12
8.6 为停止点设定运行命令.....................................................................................................12
8.7、断点菜单..........................................................................................................................13
8.8、恢复程序运行和单步调试..............................................................................................13
8.9、信号(Signals)..............................................................................................................14
8.10、线程(Thread Stops)..................................................................................................15
9、查看栈信息.................................................................................................................................15
10、查看源程序...............................................................................................................................17
10.1、显示源代码....................................................................................................................17
10.2、搜索源代码....................................................................................................................18
10.3、指定源文件的路径........................................................................................................18
10.4、源代码的内存................................................................................................................18
11、查看运行时数据.......................................................................................................................19
11.1、表达式............................................................................................................................19
11.2、程序变量........................................................................................................................20
11.3、数组................................................................................................................................20
11.4、输出格式........................................................................................................................21
11.5、查看内存........................................................................................................................21
11.6、自动显示........................................................................................................................22
11.7、设置显示选项................................................................................................................22
11.8、历史记录........................................................................................................................25
11.9、GDB 环境变量...............................................................................................................25
11.10、查看寄存器..................................................................................................................25
12、改变程序的执行.......................................................................................................................26
12.1、修改变量值....................................................................................................................26
12.2、跳转执行........................................................................................................................26
12.3、产生信号量....................................................................................................................27
12.4、强制函数返回................................................................................................................27
12.5、强制调用函数................................................................................................................27
13、在不同语言中使用 GDB.........................................................................................................28
14、后记...........................................................................................................................................28
第 2 页共 29 页

用 GDB 调试程序
1、GDB 概述
是 开源组织发布的一个强大的 下的程序调试工具。或许,各位比较
喜欢那种图形界面方式的,像 、 等 的调试,但如果你是在 平台下做软
件,你会发现 这个调试工具有比 、 的图形化调试器更强大的功能。所谓“寸
有所长,尺有所短”就是这个道理。
一般来说, 主要帮忙你完成下面四个方面的功能:启动你的程序,可以按照你的
自定义的要求随心所欲的运行程序。可让被调试的程序在你所指定的调置的断点处停住。
(断点可以是条件表达式)当程序被停住时,可以检查此时你的程序中所发生的事。动态
的改变你程序的执行环境。
从上面看来, 和一般的调试工具没有什么两样,基本上也是完成这些功能,不过
在细节上,你会发现 这个调试工具的强大,大家可能比较习惯了图形化的调试工具,
但有时候,命令行的调试工具却有着图形化工具所不能完成的功能。让我们一一看来。
2、一个调试示例
源程序:tst.c
!
"#$%&
'#(&#&))
!
")#&
*
''"&
*
+
+
",
!
&
-'#$&
'#(&#($$&))
!
')#&
*
.'/'0(1($$2#+34/%' &
.'/'0(156$2#+34/%56$ &
''$&
第 3 页共 29 页

用 GDB 调试程序
*
编译生成执行文件:
7-1-18,1
使用 GDB 调试:
7-91111111111启动
-9:;(19,
.<'- 5$$;='>?,'=,%
@AB)C@A'B','
.C-'--."
D'?,'C<,'',-,''9
D'E8FGGFDH%.'"9<,?D<./?
.<-/
,/??,'',</',
D?,I-',/JK:11-/
-9',L99','</9:K:"A9',L9(/
-9 (11111111111111111111 命令相当于 ,从第一行开始列出源码。
(
5
B
J!
6"#$%&
:'#(&#&))
;!
K")#&
M*
($''"&
-9 11111111111111111111直接回车表示,重复上一次命令
((*
(5
(B
(J",
(6!
(:&
(;-'#$&
(K'#(&#($$&))
(M!
5$ ')#&
-9 9',N(:11111111111111111111设置断点,在源程序第 (: 行处。
',N.(,$K$JKB95CI%(:
-9 9',N11111111111111111111设置断点,在函数 入口处。
',N.5,$K$JKB;,CI%6
-9 9',N11111111111111111111查看断点信息。
第 4 页共 29 页

用 GDB 调试程序
"D<..9F'8,
(9',N.N.<$$K$JKB95",,C(:
59',N.N.<$$K$JKB;,,C6
-9 '111111111111111111111运行程序,' 命令简写
>,'-.'-',"C"9O,-
',N.(%", ,C(;
(; -'#$&
-9 111111111111111111111单条语句执行, 命令简写。
(K '#(&#($$&))
-9
5$ ')#&
-9
(K '#(&#($$&))
-9
5$ ')#&
-9 111111111111111111111继续运行程序, 命令简写。
-
'0(1($$2#6$6$1111111111程序输出。
',N.5%#56$ ,C6
6 "#$%&
-9
: '#(&#&))
-9 .111111111111111111111打印变量 的值,.' 命令简写。
7(#1($;J6:K5B:
-9
K ")#&
-9
: '#(&#&))
-9 ."
75#(
-9
K ")#&
-9 .
7B#5
-9
: '#(&#&))
-9 ."
7J#B
-9 9111111111111111111111查看函数堆栈。
$#56$ ,C:
($$K$JKB(", ,C5J
第 5 页共 29 页
剩余28页未读,继续阅读
资源评论

- nevergoneaway2013-02-01基本命令用法介绍,整理的辛苦了。不过例子少了些

Arlong_BW
- 粉丝: 0
- 资源: 3
上传资源 快速赚钱
我的内容管理 展开
我的资源 快来上传第一个资源
我的收益
登录查看自己的收益我的积分 登录查看自己的积分
我的C币 登录后查看C币余额
我的收藏
我的下载
下载帮助


安全验证
文档复制为VIP权益,开通VIP直接复制
