aboutsummaryrefslogtreecommitdiff
path: root/kernel/mm/pagetable.gdb
diff options
context:
space:
mode:
authornthnluu <nate1299@me.com>2024-01-28 21:20:27 -0500
committernthnluu <nate1299@me.com>2024-01-28 21:20:27 -0500
commitc63f340d90800895f007de64b7d2d14624263331 (patch)
tree2c0849fa597dd6da831c8707b6f2603403778d7b /kernel/mm/pagetable.gdb
Created student weenix repository
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