使用GDB在C中查找局部变量的地址

时间:2012-05-31 14:42:20

标签: c gdb

说我有一些C代码:

void fun_1(unsigned int *age)

[...]

int main() {

    unsigned int age[24];
}

在GDB中,我如何找到年龄的地址?

2 个答案:

答案 0 :(得分:9)

查找地址非常简单:

p &age

答案 1 :(得分:6)

如果你不知道,age两个都不一样。一个在main中是本地的,另一个在fun_1()的本地。因此,除非您将agemain的地址传递给fun_1(),否则他们将不会拥有相同的地址。只需在main中设置一个断点并查看年龄的地址。

(gdb) break main
(gdb) p &age
.....
(gdb) break fun_1
(gdb) p &age
.....