GDB调试指南:从安装到断点使用
需积分: 19 66 浏览量
更新于2024-07-28
收藏 494KB PDF 举报
"GDB调试说明文档 - SeaSon from DB-LAB of HIT"
本文将详细介绍如何使用GDB(GNU Debugger)进行程序调试,特别是在Cygwin环境下。GDB是一款强大的源代码级调试器,广泛用于Linux和类Unix系统,也可以在Cygwin这种Windows上的模拟环境使用。
### 安装GDB
1. **安装Cygwin**:确保已经安装了Cygwin,如果没有,你需要先下载并运行Cygwin的setup文件。在安装过程中,选择"Keep"选项,这能保留已有的软件包,避免覆盖已有的配置。
2. **添加GDB组件**:在Cygwin的安装列表中找到并选择GDB组件,然后进行安装。
3. **安装Tcl/Tk库**(可选):如果你希望使用图形界面的调试工具Insight,需要在安装过程中安装Tcl/Tk库。对于较新的Cygwin版本,Insight通常是默认安装的。
### 修改Makefile以添加调试信息
1. **编辑Makefile**:找到项目根目录下的无后缀的Makefile文件,通常不是Makefile.vc或Makefile.in。
2. **添加-g标志**:在`CCOPT`变量后面添加`-g`标志,这允许编译器生成包含调试信息的可执行文件。
### 重新编译项目
1. **清理旧的编译结果**:在ns-2.2*目录下执行`make clean`,清除之前编译的文件。
2. **生成依赖关系**:执行`makedepend`命令,这将创建编译所需的依赖关系。
3. **重新编译**:最后执行`make`命令,编译项目。如果一切顺利,GDB就准备好了。
### 使用GDB调试
1. **启动GDB**:在Cygwin或Xwin窗口中输入`gdb ns`启动GDB,并加载你的程序(在这里是名为`ns`的可执行文件)。
2. **设置断点**:使用`b file.cc:112`命令在指定文件的指定行设置断点。例如,`b aodv.cc:112`会在aodv.cc的第112行设置断点。GDB支持多种设置断点的格式,具体可查阅GDB手册。
3. **删除断点**:使用`db [编号]`命令删除断点,例如`db 2`会删除编号为2的断点。
4. **运行脚本**:使用`r script.tcl`命令运行脚本,`r`代表运行,`script.tcl`是你要执行的TCL脚本。
5. **查看变量或函数值**:使用`display var`命令显示变量或函数的值。例如,若想在recv()函数的断点处查看数据包的源地址,你可以输入`display packet.src`。
### 示例
1. 在recv()函数开始处设置断点。
2. 运行`r wireless1.tcl`来执行测试脚本`wireless1.tcl`。
3. 当程序到达断点时,它会暂停,此时你可以查看变量的值,例如`display packet.src`来查看数据包的源地址。
通过熟练掌握这些基本操作,你可以在GDB中有效地定位和解决问题,无论是简单的语法错误还是复杂的逻辑问题。对于更高级的调试技巧,如单步执行、条件断点、监控内存变化等,都可以通过查阅GDB手册或在线教程来学习。
点击了解资源详情
点击了解资源详情
145 浏览量
138 浏览量
394 浏览量
265 浏览量
569 浏览量
237 浏览量
125 浏览量