====== 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.