「Learn C The Hard Way」の例を作成しているときに、次のように考えました。
int a = 10 に設定しました。しかし、その値 10 は実際にはどこにあるのでしょうか? プログラムの実行中に外部から手動でアクセスできますか?
デモンストレーション用の小さな C コード スニペットを次に示します。
int main (int argc, char const* argv[]) {
int a = 10;
int b = 5;
int c = a + b;
return 0;
}
The GNU Project Debugger (GDB)を開いて、次のように入力しました。
break main
run
next 2
私が理解したことから、0x7fff5bffb04はのメモリアドレスですint c
。次に、hexdump -C /dev/memシステム コールを使用して、メモリ全体を端末にダンプしました。
問題は、この大量の 16 進ダンプのどこで変数 cを探すかということです。私の希望は、アドレスが与えられると、0x7fff5bffb04
その値を見つけることができることです15
。また、おまけの質問です。hexdump -Cの各列は何を表していますか? (最後の列がASCII表現であることは知っています)