Debugging with gdb 中文版
2025-11-28 11:46:07 1.29MB
1
《调试与gdb》中文版,也被称为gdb手册,是GNU开源组织提供的一款源代码级别的调试工具,专为gdb版本6.8.50.20090706设计。这本书旨在帮助程序员深入理解并有效地使用gdb进行程序调试。以下是关于gdb的一些关键知识点和操作指南。 ### 前言 调试是软件开发过程中的重要环节,它允许开发者查找和修复代码中的错误。gdb是一个强大的调试器,适用于C/C++等语言,通过交互式命令行界面或图形用户界面提供对程序运行时状态的控制。 ### 第一章:一个GDB会话样例 这一章通过一个实际的gdb会话例子展示了如何启动调试、设置断点、单步执行、查看变量值以及控制程序流程。这些基本操作是使用gdb的基础,对于理解程序执行流程和定位问题至关重要。 1. 启动gdb并加载程序:你需要用gdb启动你的目标程序,这通常通过`gdb `命令完成。 2. 设置断点:在可能出错的代码行或特定函数上设置断点,可以使用`break`命令,如`break `或`break `。 3. 单步执行:`step`命令用于单步执行当前行,如果当前行包含函数调用,gdb会进入该函数内部;`next`命令则会跳过函数调用,只执行一行代码。 4. 查看变量值:`print`或`p`命令用于查看变量的当前值,例如`p `。 5. 控制程序流程:`continue`命令会继续程序的执行直到下一个断点或程序结束,而`finish`命令会执行完当前函数并返回。 ### 第二章:进入和离开GDB 这一章详细介绍了如何启动和退出gdb,以及如何在gdb中执行shell命令和记录日志。 1. **调用GDB**: - **选择文件**:使用`file`命令加载要调试的可执行文件,如`file `。 - **选择模式**:gdb支持多种运行模式,如远程调试模式、GUI模式等,具体取决于你的配置和需求。 - **启动阶段的活动**:gdb会在启动时自动加载相关的调试信息,如符号表,以便能够正确解析程序的结构。 2. **退出GDB**:使用`quit`或`q`命令退出gdb。 3. **Shell命令**:gdb允许在调试会话中直接执行shell命令,通过`!`前缀,如`!ls`列出当前目录的文件。 4. **日志输出**:开启日志功能可以记录调试会话,使用`set logging on`开启,`set logging file `指定日志文件。 ### 第三章:GDB命令 这一章主要涵盖了gdb的命令语法和常用命令,包括设置断点、查看内存、控制执行流程等。 - **命令语法**:gdb命令遵循一定的语法规则,包括命令名称、选项和参数。 - **显示命令**:如`info locals`用于查看当前作用域内的局部变量,`info breakpoints`列出所有断点。 - **控制命令**:`break`、`clear`用于设置和删除断点,`run`开始执行程序,`continue`和`step`控制执行流程。 - **数据检查**:`display`命令可以让你在每次程序暂停时自动显示某个变量的值。 此外,gdb还提供了丰富的命令用于分析堆栈、跟踪调用、修改内存和变量值,以及对多线程程序的调试支持。熟悉并掌握这些命令,将极大地提升你的调试效率。 在使用gdb的过程中,建议结合实际项目和错误信息来实践,不断探索和理解gdb的强大功能。同时,参与相关的学习群组,如描述中提到的c/c++学习群,可以与其他开发者交流经验,共同提升技术水平。
2025-08-07 21:32:59 1.16MB
1
GDB中文手册完美版GDB中文手册完美版
2022-09-02 16:00:51 401KB gdb
1
嘎嘎好用。 debugging_with_GDB中文版.pdf
2022-08-05 20:00:55 5.84MB gcc/gdb编译调试 gdb
1
前言 ..................................................................................................................................................6 第一章:一个 GDB 会话样例 ........................................................................................................6 1 一个 GDB 会话样例 ....................................................................................................6 第二章:进入和离开 GDB ...........................................................................................................10 2.1 调用 GDB ........................................................................................................................10 2.1.1 选择文件...............................................................................................................11 2.1.2 选择模式...............................................................................................................12 2.1.3 GDB 在启动阶段的活动 ......................................................................................14 2.2 退出 GDB ........................................................................................................................15 2.3 Shell 命令 .........................................................................................................................15 2.4 日志输出..........................................................................................................................15 第三章 GDB 命令 ........................................................................................................................16 3.1 命令语法..........................................................................................................................16 3.2 命令补全..........................................................................................................................16 3.3 帮助..................................................................................................................................18 第四章 在 GDB 里运行程序 ........................................................................................................20 4.1 为调试而编译..................................................................................................................20 4.2 开始程序..........................................................................................................................21 4.3 程序参数..........................................................................................................................22 4.4 程序的环境......................................................................................................................23 4.5 程序的工作目录..............................................................................................................24 4.6 程序的输入输出..............................................................................................................24 4.7 调试一个已经在运行的进程..........................................................................................25 4.8 杀死子进程......................................................................................................................25 4.9 调试多线程进程..............................................................................................................26 4.10 调试多个程序................................................................................................................28 4.11 为跳转设置书签............................................................................................................30 4.11.1 使用检查点的隐含好处.....................................................................................31 第五章 中断和继续.....................................................................................................................31 5.1 断点,监视点,捕获点..................................................................................................31 5.1.1 设置断点...............................................................................................................32 5.1.2 设置监视点...........................................................................................................36 5.1.3 设置捕获点...........................................................................................................38 5.1.4 删除断点...............................................................................................................39 5.1.5 禁用断点...............................................................................................................40 5.1.6 中断条件...............................................................................................................41 5.1.7 断点命令列表.......................................................................................................42 5.1.8 断点菜单...............................................................................................................43 5.1.9 “不能插入断点” ...............................................................................................44 5.1.10 “断点地址已调整…” .....................................................................................44 5.2 继续和单步跟踪..............................................................................................................45 5.3 信号..................................................................................................................................48 5.4 中断和开始多线程程序..................................................................................................49 第六章 检查栈...............................................................................................................................51 6.1 堆栈帧..............................................................................................................................51 6.2 回溯..................................................................................................................................52 6.3 选择堆栈帧......................................................................................................................53 6.4 堆栈帧信息......................................................................................................................54 第七章 检查源文件.......................................................................................................................55 7.1 打印源代码行..................................................................................................................55 7.2 指定位置..........................................................................................................................56 7.3 编辑源文件......................................................................................................................57 7.3.1 选择编辑器...........................................................................................................58 7.4 搜索源文件......................................................................................................................58 7.5 指定源文件目录..............................................................................................................58 7.6 源代码和机器代码..........................................................................................................61 第八章 查看数据...........................................................................................................................62 8.1 表达式..............................................................................................................................62 8.2 程序变量..........................................................................................................................63 8.3 伪数组..............................................................................................................................65 8.4 输出格式..........................................................................................................................65 8.5 查看内存..........................................................................................................................66 8.6 自动显示..........................................................................................................................68 8.7 打印设置..........................................................................................................................69 8.8 值历史..............................................................................................................................74 8.9 惯用变量..........................................................................................................................75 8.10 寄存器............................................................................................................................76 8.11 浮点硬件........................................................................................................................77 8.12 向量单元........................................................................................................................77 8.13 操作系统辅助信息........................................................................................................78 8.14 内存区域属性................................................................................................................78 8.14.1 属性.....................................................................................................................79 8.14.2 内存访问检查.....................................................................................................80 8.15 在内存和文件之间复制数据........................................................................................80 8.16 如何从程序里产生 Core 文件......................................................................................81 8.17 字符集............................................................................................................................81 8.18 缓存远程目标的数据....................................................................................................84 第九章 C 预处理宏.......................................................................................................................84 第十章 跟踪点.............................................................................................................................88 10.1 设置跟踪点的命令........................................................................................................88 10.1.1 创建和删除跟踪点.............................................................................................88 10.1.2 激活和禁用跟踪点.............................................................................................89 10.1.3 跟踪点通过计数.................................................................................................89 10.1.4 跟踪点操作列表.................................................................................................90 10.1.5 跟踪点列表.........................................................................................................91 10.1.6 开始和中止跟踪会话.........................................................................................91 10.2 使用已收集的数据........................................................................................................92 10.2.1 tfind n ...................................................................................................................92 10.2.2 tdump ...................................................................................................................94 10.2.3 save-tracepoints filename.....................................................................................95 第十一章 调试使用覆盖技术的程序...........................................................................................95 11.1 覆盖是如何工作的........................................................................................................96 11.2 覆盖命令......................................................................................................................97 11.3 自动覆盖调试................................................................................................................99 11.4 覆盖示例程序................................................................................................................99 第十二章 用 GDB 调试不同语言编写的程序 ..........................................................................100 12.1 切换源代码语言..........................................................................................................100 12.1.1 文件扩展名和语言列表...................................................................................101 12.1.2 设置工作语言...................................................................................................101 12.1.3 让 GDB 推断源语言 ........................................................................................102 12.2 显示语言......................................................................................................................102 12.3 类型和域检查..............................................................................................................102 12.3.1 类型检查概述...................................................................................................103 12.4 语言支持......................................................................................................................103 12.4.1 C 和 C++............................................................................................................104 12.4.1.1 C 和 C++操作符.............................................................................................104 12.4.1.2 C 和 C++常量.................................................................................................105 12.4.1.3 C++表达式......................................................................................................106 12.4.1.4 C 和 C++缺省值.............................................................................................107 12.4.1.5 C 和 C++类型和域检查.................................................................................107 12.4.1.6 GDB 和 C........................................................................................................107 12.4.1.7 GDB 的 C++功能 ...........................................................................................107 12.4.1.8 十进制浮点格式............................................................................................108 12.4.2 Objective-C ........................................................................................................109 12.4.2.1 命令里的方法名............................................................................................109 12.4.2.2 和 Objective-C 协作的 Print 命令.................................................................110 12.4.3 Fortran................................................................................................................110 12.4.3.1 Fortran 操作符和表达式................................................................................110 12.4.3.2 Fortran 的缺省值............................................................................................110 12.4.3.3 Fortran 的特殊命令........................................................................................110 12.4.4 Pascal .................................................................................................................111 12.4.5 Modula-2............................................................................................................111 12.4.5.1 操作符............................................................................................................111 12.4.5.2 内建函数和过程............................................................................................112 12.4.5.3 常量................................................................................................................113 12.4.5.4 Modula-2 类型................................................................................................113 12.4.5.5 Modula-2 的缺省设置....................................................................................115 12.4.5.6 与标准 Modula-2 的差异..............................................................................116 12.4.5.7 Modula-2 类型和域检查................................................................................116 12.4.5.8 范围操作符::和..............................................................................................116 12.4.5.9 GDB 和 Modula-2...........................................................................................117 12.4.6 Ada .....................................................................................................................117 12.4.6.1 介绍................................................................................................................117 12.4.6.2 Ada 里的遗漏 .................................................................................................118 12.4.6.3 对 Ada 的扩展 ...............................................................................................119 12.4.6.4 在开头处停止................................................................................................120 12.4.6.5..........................................................................................................................120 12.5 未支持的语言..............................................................................................................120 第十三章 查看符号表.................................................................................................................121 第十四章 改变执行.....................................................................................................................125 14.1 给变量赋值..................................................................................................................126 14.2 在不同的位置上继续执行..........................................................................................127 14.3 为程序设置信号..........................................................................................................127 14.4 从函数里返回..............................................................................................................128 14.5 调用程序函数..............................................................................................................128 14.6 为程序打补丁..............................................................................................................129 第十五章 GDB 文件 ...................................................................................................................129 15.1 设置文件的命令..........................................................................................................129 15.2 调试信息位于不同文件中..........................................................................................135 15.3 读取符号文件的错误..................................................................................................138 第十六章 设置调试目标.............................................................................................................139 16.1 有效目标......................................................................................................................140 16.2 管理目标的命令..........................................................................................................140 16.3 选择目标字节序..........................................................................................................142 第十七章 调试远程程序.............................................................................................................143 17.1 连接到远程目标..........................................................................................................143 17.2 给远程系统发送文件..................................................................................................144 17.3 使用 gdbserver 程序....................................................................................................145 17.3.1 运行 gdbserver..................................................................................................145 17.3.1.1 附着到运行着的程序....................................................................................146 17.3.1.2 gdbserver 的多进程模式................................................................................146 17.3.1.3 其它 gdbserver 命令行参数 ..........................................................................146 17.3.2 连接 gdbserver..................................................................................................147 17.3.3 gdbserver 的监视命令.......................................................................................147 17.4 远程配置......................................................................................................................147 17.5 实现远程代理..............................................................................................................149 17.5.1 代理能为你做什么...........................................................................................150 17.5.2 你必须为代理做什么.......................................................................................151 17.5.3 集成...................................................................................................................152 第十八章 配置相关的信息.........................................................................................................152 18.1 本地..............................................................................................................................153 18.1.1 HP-UX ...............................................................................................................153 18.1.2 BSD libkvm 接口...............................................................................................153 18.1.3 SVR4 进程信息..............................................................................................153 18.1.4 调试 DJGPP 程序的功能.................................................................................15
2022-05-02 22:58:54 1.46MB 调试
1
学习GDB调试入门教程,易上手,高清PDF文件,完整版,共156页
2022-04-29 10:14:55 3.68MB GDB调试 linux
1
Debugging With GDB中文版PDF
2022-04-15 19:21:10 4.56MB GDB 中文版
1
GDB调试手册,中文版,很适合新手的手册,有基本用法有示例,我一直用着过来的,所以分享一下
2022-01-10 19:06:08 232KB GDB 中文 手册
1
此压缩包包含如下文件: Debugging with gdb.pdf GDB Pocket Reference.pdf GDB使用手册.CHM gdb手册(debuging+with+gdb)(中文).pdf GDB完全手册.pdf 基本上gdb相关的经典文档,都在这里面,有需要的可以下载下来看看。
2021-12-30 11:13:38 4.3MB GDB 使用手册 完全手册 gdb中文手册
1
众所周知的linux底下的c语言开发工具,gcc(编译),gdb(调试),如果想学好这两个工具就好好读他们的中文手册吧
1