没有合适的资源?快使用搜索试试~ 我知道了~
首页GDB中文手册:强大的UNIX程序调试工具详解
GDB中文手册:强大的UNIX程序调试工具详解
需积分: 43 1 下载量 148 浏览量
更新于2024-07-24
收藏 846KB PDF 举报
GDB完全中文手册深入介绍了GNU开源组织开发的GDB调试工具,它在UNIX平台下的程序调试能力远超图形化IDE如VC和BCB。GDB作为一款强大的命令行调试器,主要具备以下几个关键功能: 1. 程序启动控制:用户可以根据需求定制启动程序的方式,灵活地运行程序,无论是单步执行还是从头到尾。 2. 断点设置:GDB允许在代码的特定位置设置断点,包括支持条件表达式的断点,这对于跟踪复杂逻辑或特定条件下的执行路径非常有用。 3. 程序状态检查:当程序在断点处停止时,GDB提供了丰富的调试信息,如查看变量值、内存状态、调用堆栈等,帮助开发者理解当前程序的状态。 4. 环境动态修改:调试过程中,用户可以实时改变程序的执行环境,比如修改变量值、设置临时变量等,以观察不同变量设定对程序行为的影响。 相比于图形化调试工具,GDB的命令行操作虽然初始上可能需要一定学习,但它在复杂任务处理、脚本自动化以及底层调试等方面表现出色。例如,在给出的示例中,首先编译并生成可执行文件`tst`,然后通过命令行启动GDB,输入`gdb tst`来进入调试模式。GDB会显示版本信息并提示用户如何使用。在这个过程中,你可以设置断点、单步执行代码、查看变量值,甚至可以深入函数内部进行细致的调试。 通过阅读这份GDB完全中文手册,读者可以系统地掌握如何在UNIX环境下高效地利用GDB进行程序调试,提升开发效率和问题解决能力。无论是初学者还是经验丰富的开发者,都能从中获益良多。由于篇幅较长,这里只是概述了部分内容,完整的手册将深入讲解各个功能的使用方法、命令详解以及调试技巧,以帮助用户充分利用GDB的强大功能。
资源详情
资源推荐
GDB完全手册.txt
1、gdb <program>
program也就是你的执行文件,一般在当然目录下。
2、gdb <program> core
用gdb同时调试一个运行程序和core文件,core是程序非法执行后core dump后产生的文件。
3、gdb <program> <PID>
如果你的程序是一个服务程序,那么你可以指定这个服务程序运行时的进程ID。gdb会自动attach上去,并调试他。
program应该在PATH环境变量中搜索得到。
GDB启动时,可以加上一些GDB的启动开关,详细的开关可以用gdb -help查看。我在下面只例举一些比较常用的参数:
-symbols <file>
-s <file>
从指定文件中读取符号表。
-se file
从指定文件中读取符号表信息,并把他用在可执行文件中。
-core <file>
-c <file>
调试时core dump的core文件。
-directory <directory>
-d <directory>
加入一个源文件的搜索路径。默认搜索路径是环境变量中PATH所定义的路径。
GDB的命令概貌
———————
启动gdb后,就你被带入gdb的调试环境中,就可以使用gdb的命令开始调试程序了,gdb的命令可以使用help命令来查
看,如下所示:
/home/hchen> gdb
GNU gdb 5.1.1
Copyright 2002 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "i386-suse-linux".
(gdb) help
List of classes of commands:
aliases -- Aliases of other commands
breakpoints -- Making program stop at certain points
data -- Examining data
files -- Specifying and examining files
internals -- Maintenance commands
obscure -- Obscure features
running -- Running the program
stack -- Examining the stack
status -- Status inquiries
support -- Support facilities
tracepoints -- Tracing of program execution without stopping the program
user-defined -- User-defined commands
Type "help" followed by a class name for a list of commands in that class.
Type "help" followed by command name for full documentation.
Command name abbreviations are allowed if unambiguous.
(gdb)
gdb的命令很多,gdb把之分成许多个种类。help命令只是例出gdb的命令种类,如果要看种类中的命令,可以使用help
<class> 命令,如:help breakpoints,查看设置断点的所有命令。也可以直接help <command>来查看命令的帮助。
gdb中,输入命令时,可以不用打全命令,只用打命令的前几个字符就可以了,当然,命令的前几个字符应该要标志着一
个唯一的命令,在Linux下,你可以敲击两次TAB键来补齐命令的全称,如果有重复的,那么gdb会把其例出来。
示例一:在进入函数func时,设置一个断点。可以敲入break func,或是直接就是b func
(gdb) b func
Breakpoint 1 at 0x8048458: file hello.c, line 10.
示例二:敲入b按两次TAB键,你会看到所有b打头的命令:
(gdb) b
backtrace break bt
(gdb)
示例三:只记得函数的前缀,可以这样:
(gdb) b make_ <按TAB键>
(再按下一次TAB键,你会看到:)
make_a_section_from_file make_environ
make_abs_section make_function_type
make_blockvector make_pointer_type
make_cleanup make_reference_type
make_command make_symbol_completion_list
(gdb) b make_
GDB把所有make开头的函数全部例出来给你查看。
示例四:调试C++的程序时,有可以函数名一样。如:
第 3 页
剩余14页未读,继续阅读
wlrlangirl
- 粉丝: 0
- 资源: 8
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- 计算机人脸表情动画技术发展综述
- 关系数据库的关键字搜索技术综述:模型、架构与未来趋势
- 迭代自适应逆滤波在语音情感识别中的应用
- 概念知识树在旅游领域智能分析中的应用
- 构建is-a层次与OWL本体集成:理论与算法
- 基于语义元的相似度计算方法研究:改进与有效性验证
- 网格梯度多密度聚类算法:去噪与高效聚类
- 网格服务工作流动态调度算法PGSWA研究
- 突发事件连锁反应网络模型与应急预警分析
- BA网络上的病毒营销与网站推广仿真研究
- 离散HSMM故障预测模型:有效提升系统状态预测
- 煤矿安全评价:信息融合与可拓理论的应用
- 多维度Petri网工作流模型MD_WFN:统一建模与应用研究
- 面向过程追踪的知识安全描述方法
- 基于收益的软件过程资源调度优化策略
- 多核环境下基于数据流Java的Web服务器优化实现提升性能
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功