没有合适的资源?快使用搜索试试~ 我知道了~
首页GDB完全手册:UNIX下强大的程序调试工具详解
GDB完全手册:UNIX下强大的程序调试工具详解
需积分: 43 0 下载量 86 浏览量
更新于2024-07-29
收藏 846KB PDF 举报
"GDB完全手册是一本详细介绍GNU开源组织发布的强大UNIX下程序调试工具GDB的详尽指南。与常见的图形化IDE调试器如VC和BCB相比,GDB在UNIX环境下提供了更为强大的功能,体现了"尺有所长,寸有所短"的原则。该手册涵盖了GDB的基本操作,如启动程序、设置断点(支持条件表达式)、程序暂停时的检查以及动态修改执行环境。它强调了命令行调试工具的独特优势,尤其是在某些特定场景下,非图形化的GDB可能具备图形工具无法实现的功能。 书中的一个具体示例是通过GDB调试名为`tst.c`的源代码,该程序包含一个函数`func`和主函数`main`,涉及数组求和运算。首先,通过`cc-gtst.c -o tst`编译生成可执行文件。在Linux环境下,用户可以通过命令`gdb tst`启动GDB,然后逐步执行程序,查看变量状态、检查循环执行情况,以及在指定位置设置和跳过断点。 在GDB中,用户可以利用其交互式命令来深入了解程序的运行过程,如`set break`设置断点、`run`启动程序、`next`或`step`执行单步操作,以及`print`查看变量值。此外,手册还可能讲解如何使用`watch`命令监视变量的变化,或者如何使用`info breakpoints`查看和管理断点列表。GDB的强大还体现在能够进行条件断点设置,即只有满足特定条件时才会暂停程序。 GDB完全手册不仅介绍了GDB的基本功能,还深入探讨了其高级用法和调试技巧,对于希望熟练掌握UNIX平台下程序调试的开发者来说,是一本不可多得的参考资料。通过学习和实践手册中的内容,读者将能提升自己的调试技能,并在实际工作中更高效地解决问题。"
资源详情
资源推荐
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页未读,继续阅读
shenglu0715196
- 粉丝: 0
- 资源: 16
上传资源 快速赚钱
- 我的内容管理 展开
- 我的资源 快来上传第一个资源
- 我的收益 登录查看自己的收益
- 我的积分 登录查看自己的积分
- 我的C币 登录后查看C币余额
- 我的收藏
- 我的下载
- 下载帮助
最新资源
- C++多态实现机制详解:虚函数与早期绑定
- Java多线程与异常处理详解
- 校园导游系统:无向图实现最短路径探索
- SQL2005彻底删除指南:避免重装失败
- GTD时间管理法:提升效率与组织生活的关键
- Python进制转换全攻略:从10进制到16进制
- 商丘物流业区位优势探究:发展战略与机遇
- C语言实训:简单计算器程序设计
- Oracle SQL命令大全:用户管理、权限操作与查询
- Struts2配置详解与示例
- C#编程规范与最佳实践
- C语言面试常见问题解析
- 超声波测距技术详解:电路与程序设计
- 反激开关电源设计:UC3844与TL431优化稳压
- Cisco路由器配置全攻略
- SQLServer 2005 CTE递归教程:创建员工层级结构
资源上传下载、课程学习等过程中有任何疑问或建议,欢迎提出宝贵意见哦~我们会及时处理!
点击此处反馈
安全验证
文档复制为VIP权益,开通VIP直接复制
信息提交成功