假设我有一些类似以下的C代码: void fun_1(unsigned int *age) [...] int main() { unsigned int age[24]; } 在GDB中,如何找到age的地址? 答案:可以在GDB命令行中使用“&age”来查找age数组的地址。
如果您不知道,这两个age并不相同。一个是在 main 函数中的本地变量,另一个是在 fun_1() 函数中的本地变量。所以,除非您将 main 中 age 的地址传递给 fun_1(),否则它们不会具有相同的地址。只需在 main 中设置断点并查看 age 的地址即可。 (gdb) break main (gdb) p &age ..... (gdb) break fun_1 (gdb) p &age .....
age
不是您代码片段中的一个函数。 - Oliver Charlesworthp&age
不起作用吗?这两个都有age
。 - sidyllage
的地址感兴趣,它只是一个指针,还是age
指向的地址? - Brian McFarland