有时我会遇到我想在调试中调用的函数,这些函数将指针作为参数并更改指向的内容。
例子:
int doFoo(int a, double* b)
我想从 gdb 调用这个函数,但没有 double*
躺着。是否可以使用便利变量来做到这一点?简单地打电话set $foo = 1.0
call doFoo(0, &($foo))
不起作用。
最佳答案
这似乎有效:
set var $foo = &{1.0}
call doFoo(0, $foo)
p *$foo
使用 {}
使 GDB 在进程内存中分配一个单项双数组。注意没有
&
在作业中,评估 $foo
每次都会返回一个新地址。
关于c - 在 GDB 中使用便利变量的地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/64365977/