Linux(x86-64)に、特定のプロセス(ユーザー)のアドレス空間の各ページテーブルエントリをダンプできるユーティリティ/コードがあるかどうか疑問に思いました。
ありがとう
Linux(x86-64)に、特定のプロセス(ユーザー)のアドレス空間の各ページテーブルエントリをダンプできるユーティリティ/コードがあるかどうか疑問に思いました。
ありがとう
私はこの情報を考え/proc/pid/pagemap
て/proc/pid/maps
含んでいますが、より意味のある形式でそれらをダンプするツールを知りません。
カーネルドキュメントを使用して、いつでも自分で作成できます。
私が最近これを行うために使用したスクリプト:
cat /proc/self/maps | while read line
do
echo ${line}
echo ${line} | awk '{print $1}' | (
IFS=- read start end
start=$(( 0x${start} ))
end=$(( 0x${end} ))
addr=${start}
while [ ${addr} -lt ${end} ]
do
printf "%08x: " ${addr}
dd if=/proc/self/pagemap bs=8 skip=$(( addr / 4096 )) count=1 2>/dev/null | od -v -t x8 -A none
addr=$(( addr + 4096 ))
done
)
done