次のような 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
.....