Warning: file_get_contents(/data/phpspider/zhask/data//catemap/6/apache/8.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
在Linux中转储进程的页表条目_Linux_Linux Kernel_Mmu - Fatal编程技术网

在Linux中转储进程的页表条目

在Linux中转储进程的页表条目,linux,linux-kernel,mmu,Linux,Linux Kernel,Mmu,我想知道Linux(x86-64)中是否有任何实用程序/代码可以转储给定进程(用户)地址空间的每个页表条目 谢谢我认为/proc/pid/pagemap和/proc/pid/maps包含此信息,但我不知道有任何工具以更有意义的格式转储它们 您始终可以使用内核文档自己编写: 我最近使用的脚本: cat /proc/self/maps | while read line do echo ${line} echo ${line} | awk '{print $1}' | (

我想知道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