gdb可以让你查看程序的内部结构,打印变量值,设置断点,以及单步调试。功能十分强大。
调试前必须在gcc/g++下使用-g选项编译程序。
关于core dump
当程序执行了非法的指令时,为了帮助调试,操作系统将相应的内存中的内容镜像成一个文件供调试。
Unix中的file命令可检查core文件是由哪个文件生成的
通过检查core文件,结合程序的调试信息,我们可以找到大多数程序中的bug。
启动
1.shell中启动gdb,然后用file加载程序,
2.gdb [path] [executable file name]
3.gdb [path][executable file name] [path][core]
当程序运行出错,我们需要检查core文件中提供的错误信息的时候使用这种方法调试程序。
常用命令
file 在gdb环境中加载一个待调试的程序
run/r 在完成断点设置后在gdb中运行该程序
shell 从gdb中临时返回shell,使用exit重新返回gdb环境
info 显示相关信息,常用的有info breakpoints,info threads等
break 设置断点,可以在程序的行号,函数名等处设置断点
如 break <line number>,break <function name>
next 不进入被调用函数的单步跟踪
step 进入被调用函数的单步跟踪
print/p 检查相应内存变量的取值情况,可使用格式表达输出变量内容
continue 继续执行程序。cont时它的简写
del 清除断点,参数和break命令一样
list 列源文件内容。前提是你需要在使用gcc编译的时候使用了-g参数 list <line number>从指定行显 示源程序
where 检查堆栈情况
up/down 切换当前堆栈中的位置。通过使用这个命令,可以查看不同调用关系中相关函数中变量的内容
thread 切换线程环境,对不同线程进行调试
set 设置gdb的一些内部参数
quit 退出
使用技巧
空行(直接回车) 重复上一个命令
tab 命令补全
分享到:
相关推荐
Linux 基本反汇编结构与 GDB 入门 本文将对 Linux 基本反汇编结构进行详细的讲解,并介绍 GDB 调试器的使用。首先,我们需要了解 Linux 下的汇编结构,它与 Windows 下的汇编结构不同,主要体现在操作数的顺序上。...
### GDB入门到精通 #### GDB概述 GDB(GNU Debugger)是由GNU项目开发的一款强大的调试工具,广泛应用于Linux及类Unix系统中,用于调试C、C++及其他语言编写的程序。它提供了丰富的功能,使得开发者能够深入理解...
"Linux基本反汇编结构与GDB入门" Linux基本反汇编结构是指在Linux操作系统中对汇编语言的基本结构与GDB调试器入门的知识点。 首先,Linux下的汇编语言与Windows下的汇编语言的最大不同是操作数的顺序,Linux下是将...
**GCC和GDB入门及Linux静态库合并方法** GCC(GNU Compiler Collection)是Linux系统下广泛使用的C和C++编译器,而GDB(GNU Debugger)则是一个强大的程序调试工具。本文将介绍如何使用GCC进行编译和链接,GDB的...
### GDB基础知识与应用 #### 一、GDB概述 GDB(GNU Debugger)是一款功能强大的开源调试工具,主要用于Linux平台上的程序调试。它能够帮助开发者有效地定位和解决程序中的各种问题,包括但不限于逻辑错误、内存...
本文将深入探讨GDB的入门知识,以便初学者能够快速上手。 首先,GDB的基本使用始于编译带有调试信息的程序。使用`gcc`或`g++`时,添加`-g`选项即可生成包含调试信息的可执行文件。例如: ```bash gcc -g my_...
#### 二、GDB入门 **2.1 调用GDB** - **启动GDB**:通过`gdb`命令启动调试器。 - **选择文件**:使用`file`命令指定要调试的目标文件。 - **选择模式**:通过`set`命令配置调试环境,如设置语言环境等。 - **GDB...
本主题聚焦于“Linux基本反汇编结构与GDB入门”,旨在帮助初学者理解如何利用GDB进行程序调试,并掌握Linux环境下的反汇编基础知识。 首先,我们需要了解反汇编的概念。反汇编是将机器语言代码转换为汇编语言的过程...
Eclipse 本人整理的目前最全的资料:内涵Eclipse中文教程pdf,Codeblocks中文教程pdf Eclipse C/C++调试方法、文档、问题说明 CDT配置 GDb调试工具。另有Eclipse C、C++(CDT)开发文档pdf。绝对值!
详细并且全面的GDB入门,易理解。 内容: 一、 GDB概述 二、系统认识GDB 三、GDB的命令概貌 四、GDB中运行UNIX的shell程序 五、在GDB中运行程序 六、调试已运行的程序 七、查看栈信息 八、查看源程序 九、查看运行时...
### GDB快速入门中文教程知识点总结 #### GDB简介与使用 - **GDB概述**:GDB(GNU Debugger)是一款强大的开源调试工具,适用于多种编程语言如C、C++等,支持Linux等多种操作系统。其核心功能在于允许开发者在程序...
Linux GDB 调试 C++ 入门 GDB 是 GNU 开源组织发布的一个强大的 UNIX 下的程序调试工具。它可以帮助开发者完成四个方面的功能:启动程序、设置断点、检查程序状态和动态改变执行环境。与图形化调试工具相比,GDB ...
LINUXGDB使用入门教程[整理].pdf
**GDB 不完全手册( 入门篇)** GDB,全称为GNU Debugger,是一款用于软件调试的强大工具,尤其在Linux环境下广泛使用。虽然它主要应用于Linux系统,但也有移植到Win32平台上的版本,使得Windows用户也能利用其进行...
Linux GDB使用教程,内涵gdb常用的命令和操作,值得一看。
《gdb用户手册》是为开发者提供的一种强大的调试工具,主要针对C、C++等语言。GDB(GNU Debugger)是GNU项目的一部分,它允许程序员在程序运行时检查其内部状态,包括变量值、内存区域、调用栈等,极大地提高了调试...