次のような C コードがあるとします。
void fun_1(unsigned int *age)
[...]
int main() {
unsigned int age[24];
}
GDBでは、年齢のアドレスを見つけるにはどうすればよいですか?
住所の検索は次のように簡単です。
p &age
ageあなたが気づいていない場合、両方の s は同じではありません。1 つは にローカルでmain、もう1 つは にローカルfun_1()です。したがって、 のアドレスをageに渡さない限り、同じアドレスを持つことはありませんmain。fun_1()main にブレークポイントを設定して age のアドレスを確認するだけです。
(gdb) break main
(gdb) p &age
.....
(gdb) break fun_1
(gdb) p &age
.....