4

Linux(x86-64)に、特定のプロセス(ユーザー)のアドレス空間の各ページテーブルエントリをダンプできるユーティリティ/コードがあるかどうか疑問に思いました。

ありがとう

4

2 に答える 2

7

私はこの情報を考え/proc/pid/pagemap/proc/pid/maps含んでいますが、より意味のある形式でそれらをダンプするツールを知りません。

カーネルドキュメントを使用して、いつでも自分で作成できます。

http://www.kernel.org/doc/Documentation/vm/pagemap.txt

于 2012-11-09T05:14:11.963 に答える
0

私が最近これを行うために使用したスクリプト:

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
于 2018-08-23T23:43:39.633 に答える