mirror of https://github.com/pwndbg/pwndbg.git
You cannot select more than 25 topics
Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.
50 lines
2.9 KiB
Markdown
50 lines
2.9 KiB
Markdown
<!-- THIS PART OF THIS FILE IS AUTOGENERATED. DO NOT MODIFY IT. See scripts/generate-docs.sh -->
|
|
# vmmap
|
|
|
|
```text
|
|
usage: vmmap [-h] [-w] [-x] [-s] [-A LINES_AFTER] [-B LINES_BEFORE]
|
|
[-C CONTEXT] [--gaps]
|
|
[gdbval_or_str]
|
|
|
|
```
|
|
|
|
Print virtual memory map pages.
|
|
|
|
Unnamed mappings are named as [anon_%#x] where %#x is high part of their start address. This is useful for filtering with `vmmap` or `search` commands.
|
|
|
|
Known issues with vmmap:
|
|
For QEMU user targets, the QEMU's gdbstub does not provide memory maps information to GDB until [0] is finished & merged. We try to deal with it without parsing the QEMU process' /proc/$pid/maps file, but if our approach fails, we simply create a [0, 0xffff...] vmmap which is not great and may result in lack of proper colors or inability to search memory with the `search` command.
|
|
|
|
For QEMU kernel, we use gdb-pt-dump that parses page tables from the guest by reading /proc/$pid/mem of QEMU process. If this does not work for you, use `set kernel-vmmap-via-page-tables off` to refer to our old method of reading vmmap info from `monitor info mem` command exposed by QEMU. Note that the latter may be slower and will not give full vmmaps permission information.
|
|
|
|
For coredump debugging, GDB also lacks all vmmap info but we do our best to get it back by using the `info proc mappings` and `maintenance info sections` commands.
|
|
|
|
As a last resort, we sometimes try to explore the addresses in CPU registers and if they are readable by GDB, we determine their bounds and create an "<explored>" vmmap. However, this method is slow and is not used on each GDB stop.
|
|
|
|
Memory pages can also be added manually with the use of vmmap-add, vmmap-clear and vmmap-load commands. This may be useful for bare metal debugging.
|
|
|
|
[0] https://lore.kernel.org/all/20220221030910.3203063-1-dominik.b.czarnota@gmail.com/
|
|
|
|
**Aliases:** lm, address, vprot, libs
|
|
### Positional arguments
|
|
|
|
|Positional Argument|Help|
|
|
| :--- | :--- |
|
|
|gdbval_or_str|Address or module name filter|
|
|
|
|
### Optional arguments
|
|
|
|
|Short|Long|Help|
|
|
| :--- | :--- | :--- |
|
|
|-h|--help|show this help message and exit|
|
|
|-w|--writable|Display writable maps only|
|
|
|-x|--executable|Display executable maps only|
|
|
|-s|--expand-shared-cache|Expand all entries in the DYLD Shared Cache (Darwin only)|
|
|
|-A|--lines-after|Number of pages to display after result (default: 1)|
|
|
|-B|--lines-before|Number of pages to display before result (default: 1)|
|
|
|-C|--context|Number of pages to display around the result|
|
|
||--gaps|Display unmapped memory gap information in the memory map.|
|
|
|
|
<!-- END OF AUTOGENERATED PART. Do not modify this line or the line below, they mark the end of the auto-generated part of the file. If you want to extend the documentation in a way which cannot easily be done by adding to the command help description, write below the following line. -->
|
|
<!-- ------------\>8---- ----\>8---- ----\>8------------ -->
|