Ily*_*byr 23
您可以动态分配一些空间并使用它来存储新变量.根据"当前功能的范围"的含义,它可能不是您想要的.
但是当你有一个带有指向输出参数的指针的函数func()时,它的外观如下:
set $foo = malloc(sizeof(struct funcOutStruct))
call func($foo)
p *$foo
call free($foo)
Run Code Online (Sandbox Code Playgroud)
unw*_*ind 17
对于C(可能还有C++)代码,这将是非常困难的,因为在大多数实现中这样做会涉及移动堆栈指针,这会使函数的退出代码失败,因为它不再匹配堆栈帧的大小.此外,函数中访问局部变量的所有代码都会突然冒险到达错误的位置,这也很糟糕.
所以,我不这么认为,不.
小智 7
这就是我用来打印变量的方式
(gdb) set $path=((ngx_path_t **)ngx_cycle->paths.elts)[2]
(gdb) print *$path
$16 = {
name = {
len = 29,
data = 0x80ed15c "/usr/local/nginx/fastcgi_temp"
},
len = 5,
level = {1, 2, 0},
manager = 0,
loader = 0,
data = 0x0,
conf_file = 0x0,
line = 0
}
Run Code Online (Sandbox Code Playgroud)