Skip to main content

GDB 使用指南-1

·66 words·1 min· loading
Raven005
Author
Raven005
A little bit about you
Table of Contents

本文主要描述了GDB的基础命令使用

GDB 介绍
#

GDB,全称GNU调试器(GNU Debugger),是一个强大的Unix系统下的源代码级调试工具。它可以帮助程序员查看程序在执行过程中的内部状态,从而更好地理解程序的运行机制。GDB主要用于调试C和C++语言编写的程序。它的存在,使得我们能够更深入地了解程序的运行过程,找出并修复程序中的错误。

基本命令
#

启动GDB
#

假如我们有一个编译好的C++程序,名字是a.out,(记得编译的时候要带-g表示有调试信息),接下来我们需要启动GDB

gdb a.out

查看源码
#

在GDB中,我们可以通过list来查看源码信息

(gdb) list

Ogk3e6.png

设置断点
#

断点是调试的核心,允许在程序特定的位置暂停执行,可以通过break来设置断点,通常只需要b + 文件名: + 行号即可

(gdb) b main.cpp:5

OgkXsD.png

查看断点
#

在设置了多个断点之后,我们可能需要查看所有的断点信息,来确保没有遗漏或者打错位置的断点,可以使用info breakpoints来查看所有的断点

(gdb) info breakpoints

OgkIoF.png

运行代码
#

接下来可以开始执行程序了,使用run来让程序跑起来

(gdb) run

OgkCGP.png

当程序遇到断点时,它会暂停,等待我们的进一步指令。

显示变量值
#

在调试过程中,如果需要查看变量,使用print + variable_name

(gdb) print b

观察变量
#

在某些情况下,我们可能想要知道一个变量何时被修改。GDB提供了watch命令,允许我们观察变量的变化。

(gdb) watch variable_name

每当variable_name的值发生变化时,程序会暂停执行。

OgxOhl.png

单步运行
#

如果需要一行一行执行代码,可以使用step,一般用s即可

(gdb) s

Ogkw3b.png

继续执行
#

如果设置了断点停止了程序,这时想让程序直接执行到下一个断点时,使用continue

(gdb) continue

Ogk8yI.png