-A address Dumps the vm_amap structure found at address.
-E address Dumps the vm_map_entry structure found at address.
-S address Dumps the vmspace structure found at address.
-V address Dumps the vm_map structure found at address.
This required reorganizing the code a little, which led to some
cleanup (yay!). These new methods are executed without any extra
privileges, so you need read access on /dev/mem or on the kernel core
into which you are digging.
This should be useful for, eg, examining amaps are corrupt when being
destroyed, which can cause a kernel panic (and, hence, are no longer
connected to a map entry, or the map entry is no longer connected to a
vm_map/vmspace).
The options in the man page have also been reorganized.
am_bckptr, am_slots, and am_anon data, if the vm_map_entry has an
amap. This adds three new debug "bits" to the -D argument, so the
namei cache dumping "bit" has been moved up.
Also, change the * that gets emitted with -vv to indicate the number
of pages skipped and the size of the area (in kilobytes).
would fail in spectacular ways on LOCKDEBUG kernels) by compiling the
groveler code twice (the second time with LOCKDEBUG defined so that
the appropriate structures get larger in the right way). We currently
decide if we are operating on a kernel with LOCKDEBUG enabled if the
kernel's vm_map has referential integrity between a few pointers
and/or values.
Also, if you use more than one -v, you get a * on a line by itself in
between gaps in entries. It makes finding gaps much easier visually.