GDB 使用指南-1

Raven005 Lv2

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

GDB 介绍

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

基本命令

启动GDB

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

1
gdb a.out

查看源码

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

1
(gdb) list

Ogk3e6.png

设置断点

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

1
(gdb) b main.cpp:5

OgkXsD.png

查看断点

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

1
(gdb) info breakpoints

OgkIoF.png

运行代码

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

1
(gdb) run

OgkCGP.png

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

显示变量值

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

1
(gdb) print b

观察变量

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

1
(gdb) watch variable_name

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

单步运行

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

1
(gdb) s

Ogkw3b.png

继续执行

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

1
(gdb) continue

Ogk8yI.png