プログラムのメモリアドレスに0x7fffffffeb58
値がありますが、そのアドレスの値を知りたいです。
コマンドを使用して値を取得する方法はありますか?
私は試しましたが、dd
成功しませんでした。
ベストアンサー1
プロセスのメモリアドレスを表示するには、プロセスアドレス空間にマッピングされている内容/proc/$pid/mem
も参照してください。/proc/$pid/maps
seek()
そのファイル内で目的の場所を指定し、次のことができる必要がありますdd
。
dd bs=1 skip="$((0x7fffffffeb58))" count=4 if="/proc/$pid/mem" |
od -An -vtu4
このアドレスの4バイトは符号なし32ビット整数として読み取られ、解釈されます。
別の方法は、プロセスにデバッガを接続することです。
gdb --batch -ex 'x/u 0x7fffffffeb58' -p "$pid"
kernel.yama.ptrace_scope
それにもかかわらず、sysctlの値に応じてこれを実行するには、スーパーユーザー権限が必要な場合があります。