Andrew Hunt と David Thomas による「 The Pragmatic Programmer 」を読んでいます。95 ページの「デバッグ」というセクションで、著者は次のように書いています。
「小さな整数値が表示されることを期待して、変数を調べて、代わりに 0x6e69614d のような値を取得することがあります。深刻なデバッグのために袖をまくる前に、この破損した変数の周りのメモリを簡単に確認してください。多くの場合、私たちの場合、文字として周囲のメモリを調べると、次のことがわかります。
20333231 6e69614d 2c745320 746f4e0a 1 2 3 M a i n St, \n No t 2c6e776f 2058580a 31323433 00000a33 o w n , \n X X 3 4 2 1 2\n\0\0
誰かが私たちのカウンターに番地をスプレーしたようです。今、私たちはどこを見ればよいかを知っています。」
この例を完全に取得することはできません。
1)この文脈で、著者は「カウンター」で何を意味していますか?
2) 誰かがそこに番地をスプレーした場合、変数に "Main" という値ではなくメモリ アドレスが表示されるのはなぜですか?
3)中毒で、キャラクターとして「記憶の近所」を覗くことができるツールは何ですか?
注意: 値: "Main" が保持されているメモリ アドレス (6e69614d) は、変数 0x6e69614d で見つかったものと同じであることに注意してください。