GDB 使用指南-2

Raven005 Lv2

本文主要描述了GDB中断点调试和数据命令的使用方法

断点调试

设置断点

要设置断点时,使用breakb来设置断点

1
b main.cpp:5

条件断点

有时,我们只想在满足特定条件时暂停程序

1
b main.cpp:5 if i == 5

查看断点

如果需要查看所有断点所在的位置信息,使用info breakpoints

1
info breakpoints

清除断点

有些断点我们不再需要,可以直接清除

1
2
# 清理第5行的断点
clear main.cpp:5

观察点

观察点允许我们监视变量的值,并在其值发生变化时暂停程序。这对于跟踪变量的变化非常有用

1
watch variable_name

捕捉点

捕捉点是一种特殊类型的断点,它允许我们在发生特定事件,如抛出异常时暂停程序。

1
2
# 设置捕捉点
catch throw

这将设置一个捕捉点,当程序抛出异常时,它将暂停。

数据类型

显示表达式值

在GDB中,可以通过print来评估表达式并显示其值

1
print variable_name

查看数据类型

当我们需要查看一个变量的类型,(例如类型推断的变量),需要使用whatis命令

1
whatis variable_name

打印变量值

display命令可以自动显示表达式的值,每次程序停止时都会显示

1
display x

每次程序停止时,都会显示变量x的值

修改变量值

在某些情况下,需要在调试过程中修改变量值。假设要将变量x的值设置为5,使用set命令

1
set variable x = 5

这将立即更改变量x的值,而不需要重新编译或重新启动程序。