gdb を使用して、KMines で現在のフラグ数を見つけようとしています。存在しないメモリ位置を避けるために、最初にメモリ マッピングを探す必要があることはわかっています。そこでinfo proc mappings
、コマンドを実行してメモリ セグメントを確認しました。結果からランダムなメモリ ギャップ ( 0xd27000-0x168b000
) を取得し、次のように find コマンドを実行しました。find 0x00d27000, 0x0168b000, 10
しかし、warning: Unable to access 1458 bytes of target memory at 0x168aa4f, halting search.
エラーが発生しました。アドレス 0x168aa4f は 0xd27000 から 0x168b000 の間にありますが、gdb はアクセスできないと言っています。なぜこれが起こるのですか?この状況を回避するにはどうすればよいですか? または、マップされていない/アクセスできないメモリの場所を無視する方法はありますか?
編集: アドレス 0x168aa4f の値を 1 に設定しようとしましたが、機能するため、gdb は実際にそのアドレスにアクセスできますが、find コマンドで使用するとエラーが発生します。しかし、なぜ?