如何在GDB中不断观察变量?

时间:2018-02-12 07:51:21

标签: debugging gdb

许多IDE都有一个“变量”窗格,您可以在其中添加/删除要监视的变量。每次执行代码时都会更新这些变量值。

GDB中有这样的选项吗?

1 个答案:

答案 0 :(得分:2)

如果您想要gdb的图形版本,那么您可以查看ddd。它有您正在寻找的确切选项。

gdb - 不是图形 - 无法在窗格中提供这种功能,但您可以使用display命令在每个步骤后显示变量。

Edit1:我认为实现这一目标最实用的方法(以及我在实践中所做的)是使用手表。从提示符开始:watch varname将在写入变量时中断。对于全局变量,有时最好使用print &varname获取变量的地址,然后在地址watch (int)0xdeadbeef上设置监视,用print命令的输出替换deadbeef,并使用如果它不是int,那么除了int之外的东西。

Edit2:我忘记了gdb' tui mode。我不相信你可以告诉它观看一个特定的变量,但你可以让它在你单步执行时显示寄存器(或源代码或其他东西)。在提示符中(启动gdb -tui后),输入:tui reg general。这将在每个步骤之后显示变量,当它在寄存器中时。 More tui options