pmap man page on SunOS

Man page or keyword search:  
man Server   20652 pages
apropos Keyword Search (all sections)
Output format
SunOS logo
[printable version]

pmap(1)				 User Commands			       pmap(1)

NAME
       pmap - display information about the address space of a process

SYNOPSIS
       /usr/bin/pmap [-rslF] [pid | core] ...

       /usr/bin/pmap -x [-aslF] [pid | core] ...

       /usr/bin/pmap -S [-alF] [pid | core] ...

DESCRIPTION
       The  pmap  utility  prints  information	about  the  address space of a
       process.

OPTIONS
       The following options are supported:

       -a	Prints anonymous and swap reservations for shared mappings.

       -F	Force. Grabs the target process even if	 another  process  has
		control.

		See USAGE.

       -l	Shows unresolved dynamic linker map names.

       -r	Prints the process's reserved addresses.

       -s	Prints HAT page size information.

       -S	Displays  swap	reservation information per mapping. See USAGE
		for more information.

       -x	Displays additional information per  mapping.  See  USAGE  for
		more information.

USAGE
       The  pmap  utility  prints  information	about  the  address space of a
       process.

       Process Mappings

	   /usr/bin/pmap [ -rslF ]  [ pid | core ] ...

	   By default, pmap displays the mappings in the virtual address order
	   they	 are  mapped  into  the	 process. The mapping size, flags, and
	   mapped object name are shown.

       Process anon/locked mapping details

	   /usr/bin/pmap -x [ -aslF ]  [ pid | core ] ...

	   The -x option displays additional information per mapping. The size
	   of  each mapping, the amount of resident physical memory (RSS), the
	   amount of anonymous memory, and the	amount	of  memory  locked  is
	   shown  with	this  option.  This  does not include anonymous memory
	   taken by kernel address space due to this process.

       Swap Reservations

	   /usr/bin/pmap -S [ -alF ]  [ pid | core ] ...

	   The -S option displays swap reservation information per mapping.

       Caution should be exercised when using the -F flag. Imposing  two  con‐
       trolling	 processes  on one victim process can lead to chaos. Safety is
       assured only if the primary controlling process, typically a  debugger,
       has  stopped  the victim process and the primary controlling process is
       doing nothing at the moment of application of the proc  tool  in	 ques‐
       tion.

DISPLAY FORMATS
       One  line  of  output  is  printed for each mapping within the process,
       unless the -s option is specified, where one line is printed for a con‐
       tiguous	mapping	 of  each  hardware  translation page size. The column
       headings are shown in parentheses below.

       Virtual Address (Address)

	   The first column of output represents the starting virtual  address
	   of  each  mapping.  Virtual	addresses  are	displayed in ascending
	   order.

       Virtual Mapping Size (Kbytes)

	   The virtual size in kilobytes of each mapping.

       Resident Physical Memory (RSS)

	   The amount of physical memory in kilobytes  that  is	 resident  for
	   each	 mapping,  including  that  which is shared with other address
	   spaces.

       Anonymous Memory (Anon)

	   The number of pages, counted by using  the  system  page  size,  of
	   anonymous  memory  associated with the specified mapping. Anonymous
	   memory shared with other address spaces is not included, unless the
	   -a option is specified.

	   Anonymous memory is reported for the process heap, stack, for 'copy
	   on  write'  pages  with  mappings  mapped  with  MAP_PRIVATE	  (see
	   mmap(2)).

       Locked (Locked)

	   The number of pages locked within the mapping. Typical examples are
	   memory locked with mlock() and System V shared memory created  with
	   SHM_SHARE_MMU.

       Permissions/Flags (Mode)

	   The	virtual	 memory	 permissions are shown for each mapping. Valid
	   permissions are:

	   r:	    The mapping may be read by the process.

	   w:	    The mapping may be written by the process.

	   x:	    Instructions that reside within the mapping	 may  be  exe‐
		    cuted by the process.

	   Flags  showing  additional information for each mapping may be dis‐
	   played:

	   s:	    The mapping is  shared  such  that	changes	 made  in  the
		    observed  address  space are committed to the mapped file,
		    and are visible from all other processes sharing the  map‐
		    ping.

	   R:	    Swap space is not reserved for this mapping. Mappings cre‐
		    ated with MAP_NORESERVE and System	V  ISM	shared	memory
		    mappings do not reserve swap space.

	   *:	    The	 data  for the mapping is not present in the core file
		    (only applicable when applied to a core file).  See	 core‐
		    adm(1M) for information on configuring core file content.

       Mapping Name (Mapped File)

	   A  descriptive  name for each mapping. The following major types of
	   names are displayed for mappings:

	     ·	A mapped file: For mappings between a process and a file,  the
		pmap  command  attempts to resolve the file name for each map‐
		ping. If the file name cannot be resolved, pmap	 displays  the
		major  and minor number of the device containing the file, and
		the file system inode number of the file.

	     ·	Anonymous memory: Memory not relating to any named  object  or
		file within the file system is reported as [ anon ].

		The  pmap  command  displays  common  names  for certain known
		anonymous memory mappings:

		[ heap ]		The mapping is the process heap.

		[ stack ]		The mapping is the main stack.

		[ stack tid=n ]		The mapping is the stack for thread n.

		[ altstack tid=n ]	The mapping is used as	the  alternate
					signal stack for thread n.

		If the common name for the mapping is unknown, pmap displays [
		anon ] as the mapping name.

	     ·	System V Shared Memory: Mappings created using System V shared
		memory system calls are reported with the names shown below:

		shmid=n:	The  mapping  is  a  System  V	shared	memory
				mapping. The shared memory identifier that the
				mapping was created with is reported.

		ism shmid=n:	The  mapping  is  an  "Intimate Shared Memory"
				variant of System V shared  memory.  ISM  map‐
				pings  are created with the SHM_SHARE_MMU flag
				set,  in   accordance	with   shmat(2)	  (see
				shmop(2)).

		dism shmid=n:	The  mapping  is  a  pageable  variant of ISM.
				Pageable ISM is created with the  SHM_PAGEABLE
				flag  set  in  accordance  with	 shmat(2) (see
				shmop(2)).

	     ·	Other: Mappings of other objects, including  devices  such  as
		frame  buffers.	 No  mapping  name  is	shown for other mapped
		objects.

       Page Size (Pgsz)

	   The page size in kilobytes that is used for hardware address trans‐
	   lation for this mapping. See memcntl(2) for further information.

       Swap Space (Swap)

	   The	amount	of  swap  space in kilobytes that is reserved for this
	   mapping. That is, swap space that is deducted from the total avail‐
	   able	 pool of reservable swap space that is displayed with the com‐
	   mand swap -s. See swap(1M).

EXAMPLES
       Example 1: Displaying Process Mappings

       By default, pmap prints one line for each mapping  within  the  address
       space of the target process. The following example displays the address
       space of a typical bourne shell:

       example$ pmap 102905
       102905:	  sh
       00010000	   192K r-x--  /usr/bin/ksh
       00040000	     8K rwx--  /usr/bin/ksh
       00042000	    40K rwx--	 [ heap ]
       FF180000	   664K r-x--  /usr/lib/libc.so.1
       FF236000	    24K rwx--  /usr/lib/libc.so.1
       FF23C000	     8K rwx--  /usr/lib/libc.so.1
       FF250000	     8K rwx--	 [ anon ]
       FF260000	    16K r-x--  /usr/lib/en_US.ISO8859-1.so.2
       FF272000	    16K rwx--  /usr/lib/en_US.ISO8859-1.so.2
       FF280000	   560K r-x--  /usr/lib/libnsl.so.1
       FF31C000	    32K rwx--  /usr/lib/libnsl.so.1
       FF324000	    32K rwx--  /usr/lib/libnsl.so.1
       FF340000	    16K r-x--  /usr/lib/libc_psr.so.1
       FF350000	    16K r-x--  /usr/lib/libmp.so.2
       FF364000	     8K rwx--  /usr/lib/libmp.so.2
       FF380000	    40K r-x--  /usr/lib/libsocket.so.1
       FF39A000	     8K rwx--  /usr/lib/libsocket.so.1
       FF3A0000	     8K r-x--  /usr/lib/libdl.so.1
       FF3B0000	     8K rwx--	 [ anon ]
       FF3C0000	   152K r-x--  /usr/lib/ld.so.1
       FF3F6000	     8K rwx--  /usr/lib/ld.so.1
       FFBFC000	    16K rw---	 [ stack ]
	total	  1880K

       Example 2: Displaying Memory Allocation and Mapping Types

       The -x option can be used to provide information about the memory allo‐
       cation  and  mapping  types  per	 mapping. The amount of resident, non-
       shared anonymous, and locked memory is shown for each mapping:

       example$ pmap -x 102908
       102908:	 sh
       Address	 Kbytes	    RSS	   Anon	 Locked Mode   Mapped File
       00010000	     88	     88	      -	      - r-x--  sh
       00036000	      8	      8	      8	      - rwx--  sh
       00038000	     16	     16	     16	      - rwx--	 [ heap ]
       FF260000	     16	     16	      -	      - r-x--  en_US.ISO8859-1.so.2
       FF272000	     16	     16	      -	      - rwx--  en_US.ISO8859-1.so.2
       FF280000	    664	    624	      -	      - r-x--  libc.so.1
       FF336000	     32	     32	      8	      - rwx--  libc.so.1
       FF360000	     16	     16	      -	      - r-x--  libc_psr.so.1
       FF380000	     24	     24	      -	      - r-x--  libgen.so.1
       FF396000	      8	      8	      -	      - rwx--  libgen.so.1
       FF3A0000	      8	      8	      -	      - r-x--  libdl.so.1
       FF3B0000	      8	      8	      8	      - rwx--	 [ anon ]
       FF3C0000	    152	    152	      -	      - r-x--  ld.so.1
       FF3F6000	      8	      8	      8	      - rwx--  ld.so.1
       FFBFE000	      8	      8	      8	      - rw---	 [ stack ]
       --------	  -----	  -----	  -----	  ------
       total Kb	   1072	   1032	     56	      -

       The amount of incremental memory used by each additional instance of  a
       process	can  be	 estimated  by using the resident and anonymous memory
       counts of each mapping.

       In the above example, the bourne shell has a resident  memory  size  of
       1032Kbytes.  However, a large amount of the physical memory used by the
       shell is shared	with  other  instances	of  shell.  Another  identical
       instance	 of  the shell will share physical memory with the other shell
       where possible, and allocate anonymous memory for any  non-shared  por‐
       tion.  In the above example, each additional bourne shell uses approxi‐
       mately 56Kbytes of additional physical memory.

       A more complex example shows the output format for a process containing
       different mapping types. In this example, the mappings are as follows:

       0001000: Executable text, mapped from 'maps' program

       0002000: Executable data, mapped from 'maps' program

       0002200: Program heap

       0300000: A mapped file, mapped MAP_SHARED
       0400000: A mapped file, mapped MAP_PRIVATE

       0500000: A mapped file, mapped MAP_PRIVATE | MAP_NORESERVE

       0600000: Anonymous memory, created by mapping /dev/zero

       0700000: Anonymous memory, created by mapping /dev/zero
		with MAP_NORESERVE

       0800000: A DISM shared memory mapping, created with SHM_PAGEABLE
		with 8MB locked via mlock(2)

       0900000: A DISM shared memory mapping, created with SHM_PAGEABLE,
		with 4MB of its pages touched.

       0A00000: A DISM shared memory mapping, created with SHM_PAGEABLE,
		with none of its pages touched.

       0B00000: An ISM shared memory mapping, created with SHM_SHARE_MMU

       example$ pmap -x 15492
       15492:  ./maps
	Address	 Kbytes	    RSS	   Anon	 Locked Mode   Mapped File
       00010000	      8	      8	      -	      - r-x--  maps
       00020000	      8	      8	      8	      - rwx--  maps
       00022000	  20344	  16248	  16248	      - rwx--	 [ heap ]
       03000000	   1024	   1024	      -	      - rw-s-  dev:0,2 ino:4628487
       04000000	   1024	   1024	    512	      - rw---  dev:0,2 ino:4628487
       05000000	   1024	   1024	    512	      - rw--R  dev:0,2 ino:4628487
       06000000	   1024	   1024	   1024	      - rw---	 [ anon ]
       07000000	    512	    512	    512	      - rw--R	 [ anon ]
       08000000	   8192	   8192	      -	   8192 rwxs-	 [ dism shmid=0x5]
       09000000	   8192	   4096	      -	      - rwxs-	 [ dism shmid=0x4]
       0A000000	   8192	   8192	      -	   8192 rwxsR	 [ ism shmid=0x2 ]
       0B000000	   8192	   8192	      -	   8192 rwxsR	 [ ism shmid=0x3 ]
       FF280000	    680	    672	      -	      - r-x--  libc.so.1
       FF33A000	     32	     32	     32	      - rwx--  libc.so.1
       FF390000	      8	      8	      -	      - r-x--  libc_psr.so.1
       FF3A0000	      8	      8	      -	      - r-x--  libdl.so.1
       FF3B0000	      8	      8	      8	      - rwx--	 [ anon ]
       FF3C0000	    152	    152	      -	      - r-x--  ld.so.1
       FF3F6000	      8	      8	      8	      - rwx--  ld.so.1
       FFBFA000	     24	     24	     24	      - rwx--	 [ stack ]
       -------- ------- ------- ------- -------
       total Kb	  50464	  42264	  18888	  16384

       Example 3: Displaying Page Size Information

       The  -s	option	can  be	 used to display the hardware translation page
       sizes for each portion of the address space. (See memcntl(2) for futher
       information on Solaris multiple page size support).

       In  the example below, we can see that the majority of the mappings are
       using an 8K-Byte page size, while the heap  is  using  a	 4M-Byte  page
       size.

       Notice  that  non-contiguous regions of resident pages of the same page
       size are reported as separate  mappings.	 In  the  example  below,  the
       libc.so	library	 is  reported as separate mappings, since only some of
       the libc.so text is resident:

       example$ pmap -xs 15492
       15492:  ./maps
	Address	 Kbytes	    RSS	   Anon	 Locked Pgsz Mode   Mapped File
       00010000	      8	      8	      -	      -	  8K r-x--  maps
       00020000	      8	      8	      8	      -	  8K rwx--  maps
       00022000	   3960	   3960	   3960	      -	  8K rwx--    [ heap ]
       00400000	   8192	   8192	   8192	      -	  4M rwx--    [ heap ]
       00C00000	   4096	      -	      -	      -	   - rwx--    [ heap ]
       01000000	   4096	   4096	   4096	      -	  4M rwx--    [ heap ]
       03000000	   1024	   1024	      -	      -	  8K rw-s-  dev:0,2 ino:4628487
       04000000	    512	    512	    512	      -	  8K rw---  dev:0,2 ino:4628487
       04080000	    512	    512	      -	      -	   - rw---  dev:0,2 ino:4628487
       05000000	    512	    512	    512	      -	  8K rw--R  dev:0,2 ino:4628487
       05080000	    512	    512	      -	      -	   - rw--R  dev:0,2 ino:4628487
       06000000	   1024	   1024	   1024	      -	  8K rw---    [ anon ]
       07000000	    512	    512	    512	      -	  8K rw--R    [ anon ]
       08000000	   8192	   8192	      -	   8192	   - rwxs-    [ dism shmid=0x5 ]
       09000000	   4096	   4096	      -	      -	  8K rwxs-    [ dism shmid=0x4 ]
       0A000000	   4096	      -	      -	      -	   - rwxs-    [ dism shmid=0x2 ]
       0B000000	   8192	   8192	      -	   8192	  4M rwxsR    [ ism shmid=0x3 ]
       FF280000	    136	    136	      -	      -	  8K r-x--  libc.so.1
       FF2A2000	    120	    120	      -	      -	   - r-x--  libc.so.1
       FF2C0000	    128	    128	      -	      -	  8K r-x--  libc.so.1
       FF2E0000	    200	    200	      -	      -	   - r-x--  libc.so.1
       FF312000	     48	     48	      -	      -	  8K r-x--  libc.so.1
       FF31E000	     48	     40	      -	      -	   - r-x--  libc.so.1
       FF33A000	     32	     32	     32	      -	  8K rwx--  libc.so.1
       FF390000	      8	      8	      -	      -	  8K r-x--  libc_psr.so.1
       FF3A0000	      8	      8	      -	      -	  8K r-x--  libdl.so.1
       FF3B0000	      8	      8	      8	      -	  8K rwx--    [ anon ]
       FF3C0000	    152	    152	      -	      -	  8K r-x--  ld.so.1
       FF3F6000	      8	      8	      8	      -	  8K rwx--  ld.so.1
       FFBFA000	     24	     24	     24	      -	  8K rwx--    [ stack ]
	    -------- ------- ------- ------- -------
       total Kb	  50464	  42264	  18888	  16384

       Example 4: Displaying Swap Reservations

       The -S option can be used to  describe  the  swap  reservations	for  a
       process.	 The  amount of swap space reserved is displayed for each map‐
       ping within the process. Swap reservations are  reported	 as  zero  for
       shared mappings, since they are accounted for only once system wide.

       example$ pmap -S 15492
       15492:  ./maps
	Address	 Kbytes	   Swap Mode   Mapped File
       00010000	      8	      - r-x--  maps
       00020000	      8	      8 rwx--  maps
       00022000	  20344	  20344 rwx--	 [ heap ]
       03000000	   1024	      - rw-s-  dev:0,2 ino:4628487
       04000000	   1024	   1024 rw---  dev:0,2 ino:4628487
       05000000	   1024	    512 rw--R  dev:0,2 ino:4628487
       06000000	   1024	   1024 rw---	 [ anon ]
       07000000	    512	    512 rw--R	 [ anon ]
       08000000	   8192	      - rwxs-	 [ dism shmid=0x5]
       09000000	   8192	      - rwxs-	 [ dism shmid=0x4]
       0A000000	   8192	      - rwxs-	 [ dism shmid=0x2]
       0B000000	   8192	      - rwxsR	 [ ism shmid=0x3]
       FF280000	    680	      - r-x--  libc.so.1
       FF33A000	     32	     32 rwx--  libc.so.1
       FF390000	      8	      - r-x--  libc_psr.so.1
       FF3A0000	      8	      - r-x--  libdl.so.1
       FF3B0000	      8	      8 rwx--	 [ anon ]
       FF3C0000	    152	      - r-x--  ld.so.1
       FF3F6000	      8	      8 rwx--  ld.so.1
       FFBFA000	     24	     24 rwx--	 [ stack ]
       -------- ------- -------
       total Kb	  50464	  23496

       The  swap reservation information can be used to estimate the amount of
       virtual swap used by each additional  process.  Each  process  consumes
       virtual	swap from a global virtual swap pool. Global swap reservations
       are reported by the 'avail' field of the swap(1M) command.

       Example 5: Labeling Stacks in a Multi-threaded Process

       example$ pmap 121969
       121969: ./stacks
       00010000	      8K r-x--	/tmp/stacks
       00020000	      8K rwx--	/tmp/stacks
       FE8FA000	      8K rwx-R	  [ stack tid=11 ]
       FE9FA000	      8K rwx-R	  [ stack tid=10 ]
       FEAFA000	      8K rwx-R	  [ stack tid=9 ]
       FEBFA000	      8K rwx-R	  [ stack tid=8 ]
       FECFA000	      8K rwx-R	  [ stack tid=7 ]
       FEDFA000	      8K rwx-R	  [ stack tid=6 ]
       FEEFA000	      8K rwx-R	  [ stack tid=5 ]
       FEFFA000	      8K rwx-R	  [ stack tid=4 ]
       FF0FA000	      8K rwx-R	  [ stack tid=3 ]
       FF1FA000	      8K rwx-R	  [ stack tid=2 ]
       FF200000	     64K rw---	  [ altstack tid=8 ]
       FF220000	     64K rw---	  [ altstack tid=4 ]
       FF240000	    112K rw---	  [ anon ]
       FF260000	     16K rw---	  [ anon ]
       FF270000	     16K r-x--	/usr/platform/sun4u/lib/libc_psr.so.1
       FF280000	    672K r-x--	/usr/lib/libc.so.1
       FF338000	     24K rwx--	/usr/lib/libc.so.1
       FF33E000	      8K rwx--	/usr/lib/libc.so.1
       FF35A000	      8K rwxs-	  [ anon ]
       FF360000	    104K r-x--	/usr/lib/libthread.so.1
       FF38A000	      8K rwx--	/usr/lib/libthread.so.1
       FF38C000	      8K rwx--	/usr/lib/libthread.so.1
       FF3A0000	      8K r-x--	/usr/lib/libdl.so.1
       FF3B0000	      8K rwx--	  [ anon ]
       FF3C0000	    152K r-x--	/usr/lib/ld.so.1
       FF3F6000	      8K rwx--	/usr/lib/ld.so.1
       FFBFA000	     24K rwx--	  [ stack ]
	total	   1400K

EXIT STATUS
       The following exit values are returned:

       0		       Successful operation.

       non-zero		       An error has occurred.

FILES
       /proc/*		       process files

       /usr/proc/lib/*	       proc tools supporting files

ATTRIBUTES
       See attributes(5) for descriptions of the following attributes:

       ┌─────────────────────────────┬─────────────────────────────┐
       │      ATTRIBUTE TYPE	     │	    ATTRIBUTE VALUE	   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Availability		     │SUNWesu			   │
       ├─────────────────────────────┼─────────────────────────────┤
       │Interface Stability	     │See below.		   │
       └─────────────────────────────┴─────────────────────────────┘

       The command syntax is Evolving. The output formats are Unstable.

SEE ALSO
       ldd(1), mdb(1), proc(1), ps(1), coreadm(1M), swap(1M),  mmap(2),	 memc‐
       ntl(2), shmop(2), dlopen(3C), proc(4), attributes(5)

SunOS 5.10			  19 Jun 2006			       pmap(1)
[top]

List of man pages available for SunOS

Copyright (c) for man pages and the logo by the respective OS vendor.

For those who want to learn more, the polarhome community provides shell access and support.

[legal] [privacy] [GNU] [policy] [cookies] [netiquette] [sponsors] [FAQ]
Tweet
Polarhome, production since 1999.
Member of Polarhome portal.
Based on Fawad Halim's script.
....................................................................
Vote for polarhome
Free Shell Accounts :: the biggest list on the net