aboutsummaryrefslogtreecommitdiff
path: root/kernel/mm/pagetable.gdb
diff options
context:
space:
mode:
Diffstat (limited to 'kernel/mm/pagetable.gdb')
-rw-r--r--kernel/mm/pagetable.gdb25
1 files changed, 25 insertions, 0 deletions
diff --git a/kernel/mm/pagetable.gdb b/kernel/mm/pagetable.gdb
new file mode 100644
index 0000000..b145804
--- /dev/null
+++ b/kernel/mm/pagetable.gdb
@@ -0,0 +1,25 @@
+define pagetable
+ if $argc > 0
+ set $proc = proc_lookup($arg0)
+ if $proc != NULL
+ printf "Process %i (%s):\n", $proc->p_pid, $proc->p_name
+ set $pagedir = $proc->p_pml4
+ else
+ printf "No process with PID %i exists\n", $arg0
+ set $pagedir = NULL
+ end
+ else
+ printf "Current mappings:\n"
+ set $pagedir = current_pagedir
+ end
+
+ if $pagedir != NULL
+ kinfo pt_mapping_info current_pagedir
+ end
+end
+document pagetable
+Without arguments displays current page table mappings in the form
+"[vstart, vend) => [pstart, pend)". Takes an optional integer argument
+to specify the PID of a process whose page table mappings should be
+printed instead.
+end