我正在使用Xcode的调试器。在断点处停止时,是否有一个命令我可以在GDB命令提示符下键入以创建局部变量?如果是这样,怎么样?请举例说明。
我知道我可以在代码中执行它然后重新编译程序,但我正在寻找更快的方法。
答案 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
要重申:这实际上并不会影响程序的堆栈或其他任何东西,因为这会破坏很多东西,但是如果您只需要本地游乐场,一些循环变量等,则很有用。