我正在使用 Xcode 的调试器。在断点处停止时,是否可以在 GDB 命令提示符中键入命令来创建局部变量?如果是这样,如何?请举例说明。
我知道我可以在代码中完成,然后重新编译程序,但我正在寻找一种更快的方法。
最佳答案
如果您不需要在代码中引用该变量而只想进行一些临时调查,您可以使用 Convenience Variables通过使用 set
变量名以 $
开头的命令:
(gdb) set $foo = method_that_makes_something()
(gdb) set $bar = 15
(gdb) p $bar
$4 = 15
您会注意到,当您打印带有数字变量前缀的内容时,您也可以稍后使用它们来引用该值:(gdb) p $4
$5 = 15
重申:这实际上并不影响程序的堆栈,它不能,因为这会破坏很多东西。但是如果您只需要一个本地操场、一些循环变量等,它就会很有用。虽然您不能修改堆栈,但您可以 interact with the program's memory space - 您可以调用函数(包括
malloc
)并构造对象,但这些都将存在于静态内存中,而不是作为堆栈上的局部变量。
关于xcode - GDB:创建局部变量?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8275135/