GDB:创建局部变量?

时间:2011-11-25 23:36:30

标签: xcode debugging gdb

我正在使用Xcode的调试器。在断点处停止时,是否有一个命令我可以在GDB命令提示符下键入以创建局部变量?如果是这样,怎么样?请举例说明。

我知道我可以在代码中执行它然后重新编译程序,但我正在寻找更快的方法。

3 个答案:

答案 0 :(得分:1)

由于局部变量需要堆栈空间而且(已编译的)代码与堆栈布局相关联,所以则不能。

将其与脚本语言进行比较并不合适。

答案 1 :(得分:1)

print命令打印的值保存在GDB“值历史记录”中。这允许您在其他表达式中引用它们。

例如,假设您刚刚打印了一个指向结构的指针,并希望查看结构的内容。输入

就足够了
p *$

答案 2 :(得分:0)

它在注释中被提及,但不能作为答案:如果您不需要在代码中引用变量,而只是想进行临时调查,则可以使用Convenience Variables启动变量$

(gdb) set $foo = method_that_makes_something()
(gdb) set $bar = 15
(gdb) p $bar
$4 = 15

打印时,您会注意到它带有数字变量的前缀-您以后也可以使用它们来引用该值:

(gdb) p $4
$5 = 15

要重申:这实际上并不会影响程序的堆栈或其他任何东西,因为这会破坏很多东西,但是如果您只需要本地游乐场,一些循环变量等,则很有用。