【发布时间】:2018-04-22 20:34:27
【问题描述】:
Intel core i5, Ubunu 16.04
我正在阅读有关内存分页 here 的信息,现在正在尝试使用它。 I wrote a simple assembly program for getting Segmentation Fault 并在 gdb 中运行。这里是:
section .text
global _start
_start:
mov rax, 0xFFFFFFFFFFFF0A31
mov [val], eax
mov eax, 4
mov ebx, 1
mov ecx, val
mov edx, 2
int 0x80
mov eax, 1
int 0x80
segment .bss
dummy resb 0xFFA
val resb 1
我将其组装并链接到一个 64 位 ELF 静态可执行文件中。
据我所知,每个进程都有自己的页表,cr3 寄存器指向。现在我想自己查看页表?是否可以在 Linux 中找到有关进程页表的信息?
【问题讨论】:
-
应用程序不能访问页表,只有内核可以访问。
-
@Barmar 但也许我们可以在
/proc或Linux 的其他地方找到一些信息? -
Unix.stackexchange.com 可能是一个更好的地方来询问这个问题。
-
@Barmar Btw,我们可以在 gdb 中找到一些关于它的信息吗?
-
还要注意它一直在变化。除非您将页面锁定在内存中,否则这将是非常无用的信息。
标签: linux assembly memory-management x86 virtual-memory