====== Proc - maps file ======
The **/proc/PID/maps** file containing the currently mapped memory regions and their access permissions.
The format is:
^address^perms^offset^dev^inode^pathname^
|08048000-08049000|r-xp|00000000|03:00|8312|/opt/test|
|08049000-0804a000|rw-p|00001000|03:00|8312|/opt/test|
|0804a000-0806b000|rw-p|00000000|00:00|0|[heap]|
|a7cb1000-a7cb2000|---p|00000000|00:00|0| |
|a7cb2000-a7eb2000|rw-p|00000000|00:00|0| |
|a7eb2000-a7eb3000|---p|00000000|00:00|0| |
|a7eb3000-a7ed5000|rw-p|00000000|00:00|0| |
|a7ed5000-a8008000|r-xp|00000000|03:00|4222|/lib/libc.so.6|
|a8008000-a800a000|r--p|00133000|03:00|4222|/lib/libc.so.6|
|a800a000-a800b000|rw-p|00135000|03:00|4222|/lib/libc.so.6|
|a800b000-a800e000|rw-p|00000000|00:00|0| |
|a800e000-a8022000|r-xp|00000000|03:00|14462|/lib/libpthread.so.0|
|a8022000-a8023000|r--p|00013000|03:00|14462|/lib/libpthread.so.0|
|a8023000-a8024000|rw-p|00014000|03:00|14462|/lib/libpthread.so.0|
|a8024000-a8027000|rw-p|00000000|00:00|0| |
|a8027000-a8043000|r-xp|00000000|03:00|8317|/lib/ld-linux.so.2|
|a8043000-a8044000|r--p|0001b000|03:00|8317|/lib/ld-linux.so.2|
|a8044000-a8045000|rw-p|0001c000|03:00|8317|/lib/ld-linux.so.2|
|aff35000-aff4a000|rw-p|00000000|00:00|0|[stack]|
|ffffe000-fffff000|r-xp|00000000|00:00|0|[vdso]|
where:
* **address** is the address space in the process that it occupies.
* **perms** is a set of permissions:
* r = read.
* w = write.
* x = execute.
* s = shared.
* p = private (copy on write).
* **offset** is the offset into the mapping.
* **dev** is the device (major:minor).
* **inode** is the inode on that device.
* 0 indicates that no inode is associated with the memory region, as the case would be with BSS (uninitialized data).
* **pathname** shows the name associated file for this mapping. If the mapping is not associated with a file:
* [heap] = the heap of the program.
* [stack] = the stack of the main process.
* [vdso] = the "virtual dynamic shared object", the kernel system call handler.
* If empty, the mapping is anonymous.