Go to main content

man pages section 1: User Commands

Exit Print View

Updated: Wednesday, July 27, 2022
 
 

pmap(1)

Name

pmap - displays information about the address space of a process

Synopsis

/usr/bin/pmap [-bhrslF] [-A address_range]
     [--scale[=item1,item2,...]] [pid | core]...
/usr/bin/pmap -L [-bhrslF] [-A address_range]
     [--scale[=item1,item2,...]] [pid] ...
/usr/bin/pmap -x [-ahslF] [-A address_range]
    [--scale[=item1,item2,...]] [pid]...
/usr/bin/pmap -S [-ahlF] [-A address_range]
    [--scale[=item1,item2,...]] [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.

–A address_range

Specifies the subrange of address space to display. address_range is specified in one of the following forms:

start_addr

A single address limits the output to the segment (or the page if the –L option is present) containing that address. If the specified address corresponds to the starting address of a segment, the output always includes the whole segment even when the –L option is specified.

start_addr,

An address followed by comma without the end address limits the output to all segments (or pages if the –L option is present) starting from the one containing the specified address.

start_addr, end_addr

An address range specified by the start address and end address limits the output to all segments (or pages if the –L option is present) starting from the segment or page containing the start address through the segment or page containing the end address.

,end_addr

An address range started with comma without the start address limits the output to all segments, or pages if the –L option is present starting from the first one present until the segment, or pages if the –L option is present containing the specified address.

–b

Print the basename of mapped files rather than the full file path (see basename(1)).

–F

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

For more information, see the Usage section.

–h

On output, memory sizes are scaled to a human readable format. The –h option is equivalent to using the –scale=max,1024 option.

–l

Shows unresolved dynamic linker map names.

–L

Prints lgroup containing physical memory that backs virtual memory.

–r

Prints the process's reserved addresses.

–s

Prints HAT page size information.

–S

Displays swap reservation information per mapping. For more information, see the Usage section.

–x

Displays additional information per mapping. For more information, see the Usage section.

–scale[=item1,item2,...]

On output, memory sizes are scaled to a human readable format, for example, 14K, 234M, 2.7G, or 3.0T. Scaling is done by repetitively dividing by 1024, unless otherwise specified.

–scale specified without arguments enables default scaled output, and is equivalent to –scale=max,1024.

–scale can be specified with the following arguments.

binary

Scaling is done by repetitively dividing by a scale factor of 1024. The use of binary scaling is indicated by the addition of an 'i' modifier to the suffix (Ki, Mi, Gi, ...).

max

Values are scaled to the largest unit for which the result retains a non-zero integer part. Up to 2 decimal places of fractional output may be shown.

min

Values are scaled to the smallest unit capable of showing the full value within the allotted space of 5 columns, and displayed without the use of fractional output.

minwide

Values are scaled to the smallest unit capable of showing the full value within the allotted space of 8 columns, and displayed without the use of fractional output.

1000

Scaling is done by repetitively dividing by a scale factor of 1000.

1024

Scaling is done by repetitively dividing by a scale factor of 1024.

–?
–-help

Print usage message and immediately exit.

Usage

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

Process Mappings
/usr/bin/pmap [ -rslF ] [-A address_range] [ pid | core ] ...

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

The –A option can be used to limit the output to a specified address range. The specified addresses are rounded up or down to a segment boundary and the output includes the segments bounded by those addresses.

Process Lgroup Mappings
/usr/bin/pmap -L [ -rslF ] [-A address_range] pid ...

The –L option can be used to determine the lgroup containing the physical memory backing the specified virtual memory. When used with the –A option, the specified addresses are rounded up or down to a page boundary and the output is limited to the page or pages bounded by those addresses.

This can be used in conjunction with plgrp(1) to discover whether the home lgroup of a thread of interest is the same as where the memory is located, and whether there should be memory locality for the thread. The lgrpinfo(1) command can also be useful with this pmap option. It displays the lgroup hierarchy, contents, and characteristics which gives more information about the lgroups that the memory is distributed across and their relationship to each other and any other lgroups of interest.

In addition, the thread and memory placement can be changed by using plgrp(1), pmadvise(1), or madv.so.1(1).

Process anon/locked mapping details
/usr/bin/pmap -x [ -aslF ] [-A address_range] [ pid] ...

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 ] [-A address_range] [ pid | core ] ...

The –S option displays swap reservation information per mapping.

Caution should be exercised when using the –F flag. Imposing two controlling processes on one victim process can lead to chaos. Safety is assured only if the primary controlling process, typically a debugger, stops the victim process and the primary controlling process does nothing at the moment of application of the proc tool in question.

DISPLAY FORMATS

One line of output is printed for each mapping within the process, unless the –s or –L option is specified. With –s option, one line is printed for a contiguous mapping of each hardware translation page size. With –L option, one line is printed for a contiguous mapping belonging to the same lgroup. With both –L and –s options, one line is printed for a contiguous mapping of each hardware translation page size belonging to the same lgroup. 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. See –scale.

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. See –scale.

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. For more information, see the mmap(2) man page.

Locked (Lock)

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 can be read by the process.

w:

The mapping can be written by the process.

x:

Instructions that reside within the mapping can be executed by the process.

Flags showing additional information for each mapping can be displayed:

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

i:

The mapping is enabled for ADI.

R:

Swap space is not reserved for this mapping. Mappings created with MAP_NORESERVE and System V ISM shared memory mappings do not reserve swap space.

I/E:

The mapping has prune requests active and will be included or excluded from the core file. 'I' indicates inclusion whereas, 'E' indicates exclusion.

*:

The data for the mapping is not present in the core file (only applicable when applied to a core file). For information on configuring core file content, see the coreadm(8) man page.

Lgroup (Lgrp)

The lgroup containing the physical memory that backs the specified mapping.

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 segment name, and file name for each mapping. 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 mappings are created with the SHM_SHARE_MMU flag set, in accordance with shmat(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).

osm shmid=n:

The mapping is an "optimized shared memory" (OSM) variant of ISM, and was created using shmget_osm(2).

Reserved Virtual Address:

Ranges are reported as [ reserved ] and are created to prevent the kernel from choosing addresses within the Reserved range to satisfy non-fixed address memory mapping operations (mmap(2) and shmat(2)). Fixed address mapping operations can map on top of the Reserved VA range in which case the Mapping Name changes to that of the new mapping. When the fixed address mapping is unmapped, the address range reverts back to [ reserved ].

Unlike other mapping types, Reserved VA ranges can occupy any location in the process' address space including 'invalid' locations, such as the VA hole. For more information, see MC_RESERVE_AS in memcntl(2).

CMI Memory:

Mappings created by using the CMI API are reported with the names shown below:

cmi cmi_seg=n:

The mapping is a local CMI memory. The segment handle that the mapping was created with is reported.

cmi cmi_seg=n (remote):

The mapping is a remote CMI memory. The segment handle that the mapping was created with is reported.

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 translation for this mapping. See –scale. For more information, see the memcntl(2) man page.

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 available pool of reservable swap space that is displayed with the command swap –s. See –scale. For more information, see the swap(8) man page.

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


example$ pmap $$
3585:   /usr/bin/ksh
0000000100000000 1728K r-x----  [ text ] /usr/bin/ksh
00000001001B0000   56K r-x----  [ text ] /usr/bin/ksh
00000001002BE000    8K rwx----  [ data ] /usr/bin/ksh
00000001002C0000   64K rwx----  [ data ] /usr/bin/ksh
00000001002D0000   16K rwx----  [ data ] /usr/bin/ksh
0000000100300000   24K rw-----  [ bss ] /usr/bin/ksh
0000000EEBFC4000    8K rw-----  [ heap ]
0007FCB434C00000 2176K r-x----  [ text ] /lib/sparcv9/libc.so.1
0007FCB434E20000   24K r-x----  [ text ] /lib/sparcv9/libc.so.1
0007FCB434F26000   80K rwx----  [ data ] /lib/sparcv9/libc.so.1
0007FCB434F3A000   40K rwx----  [ data ] /lib/sparcv9/libc.so.1
0007FCB435000000  704K r-x----  [ text ] /lib/sparcv9/libm.so.2
0007FCB4350B0000   56K r-x----  [ text ] /lib/sparcv9/libm.so.2
0007FCB4351BC000   16K rwx----  [ data ] /lib/sparcv9/libm.so.2
0007FCB435200000  256K r-x----  [ text ] /lib/sparcv9/ld.so.1
0007FCB4352F0000  128K rw-----  [ anon ]
0007FCB435320000   64K rw-----  [ anon ]
0007FCB435340000    8K r------  [ dtrace ] /lib/sparcv9/ld.so.1
0007FCB435370000  128K rw-----  [ anon ]
0007FCB4353A0000  128K rw-----  [ anon ]
0007FCB4353D0000  128K rw-----  [ anon ]
0007FCB435400000  128K rw-----  [ anon ]
0007FCB435430000   64K rw-----  [ anon ]
0007FCB435442000   24K rwx----  [ data ] /lib/sparcv9/ld.so.1
0007FCB435448000    8K rwx----  [ data ] /lib/sparcv9/ld.so.1
0007FCB435460000   24K rw-----  [ anon ]
0007FCB43546E000    8K rw-s---  [ anon ]
0007FCB435472000    8K r--s---  [ anon ]
0007FCB435476000    8K r--s---  [ anon ]
0007FCB43547A000    8K r--s---  [ anon ]
0007FCB43547E000    8K r-x----  [ anon ]
FFFFFCFCE72A0000   64K rw-----  [ stack ]
FFFFFCFCE72B0000   40K rw-----  [ stack ]
total   6232K
Example 2 Displaying Memory Allocation and Mapping Types

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


example$ pmap -x $$
4022:   /usr/bin/ksh
         Address Kbytes  RSS Anon Lock Mode     Mapped File
0000000100000000   1784 1704    -    - r-x----  [ text ] ksh
00000001002BE000     88   88   72    - rwx----  [ data ] ksh
0000000100300000     24   16   16    - rw-----  [ bss ] ksh
0000006AB975A000      8    -    -    - rw-----  [ heap ]
0007FD56FE400000   2200 2200    -    - r-x----  [ text ] libc.so.1
0007FD56FE726000     80   80   80    - rwx----  [ data ] libc.so.1
0007FD56FE73A000     40   24   24    - rwx----  [ data ] libc.so.1
0007FD56FE800000    760  760    -    - r-x----  libm.so.2
0007FD56FE9BC000     16   16   16    - rwx----  libm.so.2
0007FD56FEA00000    256  256    -    - r-x----  [ text ] ld.so.1
0007FD56FEB40000      8    8    -    - r------  [ dtrace ] ld.so.1
0007FD56FEBD0000     64   64   64    - rw-----  [ anon ]
0007FD56FEBF0000    128  128  128    - rw-----  [ anon ]
0007FD56FEC1C000      8    8    -    - rw-s---  [ anon ]
0007FD56FEC20000    128  128  128    - rw-----  [ anon ]
0007FD56FEC42000     24   24   24    - rwx----  [ data ] ld.so.1
0007FD56FEC48000      8    8    8    - rwx----  [ data ] ld.so.1
0007FD56FEC60000    128  128  128    - rw-----  [ anon ]
0007FD56FEC90000    128  128  128    - rw-----  [ anon ]
0007FD56FECC0000     24   16   16    - rw-----  [ anon ]
0007FD56FECD0000     64   64   64    - rw-----  [ anon ]
0007FD56FECEA000      8    8    -    - r--s---  [ anon ]
0007FD56FECEE000      8    8    -    - r--s---  [ anon ]
0007FD56FECF2000      8    8    -    - r--s---  [ anon ]
0007FD56FECF6000      8    8    -    - r-x----  [ anon ]
FFFFFD103AE20000     64   64   64    - rw-----  [ stack ]
FFFFFD103AE30000     24   24   24    - rw-----  [ stack ]
---------------- ------ ---- ---- ----
        total Kb   6088 5968  984    -

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 shell process has a resident memory size of 5668Kbytes. However, a large amount of the physical memory used by the shell is shared with other processes. When more than one process runs the same program, they share physical memory with each other where possible, and allocate anonymous memory for any non-shared portion. In the above example, each additional shell process uses approximately 984Kbytes 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(3C)

0900000

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

0A00000

An ISM shared memory mapping, created with SHM_SHARE_MMU, with none of its pages touched

0B00000

An ISM shared memory mapping, created with SHM_SHARE_MMU

0C00000

A remote CMI memory mapping

0D00000

A local CMI memory mapping


example$ pmap -x 4095
4095:   ./maps
 Address  Kbytes     RSS Anon  Lock Mode     Mapped File
00010000       8       8    -     - r-x----  [ text ] maps
00020000       8       8    8     - rwx----  [ data ] maps
00022000      56       8    8     - rwx----  [ heap ]
03000000    1024    1024    -     - rw-s---  dev:533,2 ino:631625786
04000000    1024    1024  512     - rw-----  dev:533,2 ino:631625786
05000000    1024    1024  512     - rw--R--  dev:533,2 ino:631625786
06000000    1024    1024 1024     - rw-----  [ anon ]
07000000     512     512  512     - rw--R--  [ anon ]
08000000    8192    8192    -  8192 rwxs---  [ dism shmid=0x0 ]
09000000    8192    8192    -     - rwxs---  [ dism shmid=0x1 ]
0A000000    8192    8192    -  8192 rwxsR--  [ ism shmid=0x2 ]
0B000000    8192    8192    -  8192 rwxsR--  [ ism shmid=0x3 ]
0C000000 1048576 1048576    -     - r--s---  [ cmi cmi_seg=0x3 (remote) ]
0D000000  262144  262144    -     - rw-s---  [ cmi cmi_seg=0x2 ]
FECA0000    2104    1848    -     - r-x----  [ text ] libc.so.1
FEEBE000      48      48   48     - rwx----  [ data ] libc.so.1
FEECA000      24      16   16     - rwx----  [ data ] libc.so.1
FF370000      24      16   16     - rw-----  [ anon ]
FF380000     240     240    -     - r-x----  [ text ] ld.so.1
FF3CC000       8       8    -     - r------  [ dtrace ] ld.so.1
FF3D4000      32      24   24     - rw-----  [ anon ]
FF3DE000      16      16   16     - rwx----  [ data ] ld.so.1
FF3EE000       8       8    -     - r--s---  [ anon ]
FF3F2000       8       8    -     - r--s---  [ anon ]
FF3F6000       8       8    -     - r--s---  [ anon ]
FF3FA000       8       8    -     - r-x----  [ anon ]
FFBF0000      64      64   64     - rw-----  [ stack ]
-------- ------- ------- ---- -----
total Kb  40040 39712 2760 24576
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 further 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 shared memory segments are 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 1840
1840:   ./maps
 Address Kbytes   RSS Anon  Lock Pgsz Mode     Mapped File
00010000      8     8    -     -   8K r-x----  [ text ] maps
00020000      8     8    8     -   8K rwx----  [ data ] maps
00022000      8     8    8     -   8K rwx----  [ heap ]
00024000     48     -    -     -    - rwx----  [ heap ]
03000000   1024  1024    -     -   8K rw-s---  dev:533,2 ino:569519580
04000000   1024  1024  512     -   8K rw-----  dev:533,2 ino:569519580
05000000   1024  1024  512     -   8K rw--R--  dev:533,2 ino:569519580
06000000   1024  1024 1024     -  64K rw-----  [ anon ]
07000000    512   512  512     -   8K rw--R--  [ anon ]
08000000   8192  8192    -  8192   4M rwxs---  [ dism shmid=0x0 ]
09000000   8192  8192    -     -   4M rwxs---  [ dism shmid=0x1 ]
0A000000   8192  8192    -  8192   4M rwxsR--  [ ism shmid=0x2 ]
0B000000   8192  8192    -  8192   4M rwxsR--  [ ism shmid=0x3 ]
FECA0000    384   384    -     -  64K r-x----  [ text ] libc.so.1
FED00000    256    64    -     -    - r-x----  [ text ] libc.so.1
FED40000    640   640    -     -  64K r-x----  [ text ] libc.so.1
FEDE0000    128   128    -     -    - r-x----  [ text ] libc.so.1
FEE00000     64    64    -     -  64K r-x----  [ text ] libc.so.1
FEE10000    128    64    -     -    - r-x----  [ text ] libc.so.1
FEE30000    320   320    -     -  64K r-x----  [ text ] libc.so.1
FEE80000    128   128    -     -    - r-x----  [ text ] libc.so.1
FEEA0000     16    16    -     -    - r-x----  [ text ] libc.so.1
FEEA4000     40    40    -     -   8K r-x----  [ text ] libc.so.1
FEEBE000     48    48   48     -   8K rwx----  [ data ] libc.so.1
FEECA000      8     -    -     -    - rwx----  [ data ] libc.so.1
FEECC000     16    16   16     -   8K rwx----  [ data ] libc.so.1
FF370000     16    16   16     -   8K rw-----  [ anon ]
FF374000      8     -    -     -    - rw-----  [ anon ]
FF380000    192   192    -     -  64K r-x----  [ text ] ld.so.1
FF3B0000     48    48    -     -   8K r-x----  [ text ] ld.so.1
FF3CC000      8     8    -     -   8K r------  [ dtrace ] ld.so.1
FF3D4000     24    24   24     -   8K rw-----  [ anon ]
FF3DA000      8     -    -     -    - rw-----  [ anon ]
FF3DE000     16    16   16     -   8K rwx----  [ data ] ld.so.1
FF3EE000      8     8    -     -    - r--s---  [ anon ]
FF3F2000      8     8    -     -    - r--s---  [ anon ]
FF3F6000      8     8    -     -    - r--s---  [ anon ]
FF3FA000      8     8    -     -    - r-x----  [ anon ]
FFBF0000     64    64   64     -  64K rw-----  [ stack ]
-------- ------ ----- ---- -----
total Kb  40040 39712 2760 24576
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 mapping within the process. Swap reservations are reported as zero for shared mappings, since they are accounted for only once system wide.

example$ pmap -S 4220
4220:   ./maps
 Address Kbytes Swap Mode     Mapped File
00010000      8    - r-x----  [ text ] maps
00020000      8    8 rwx----  [ data ] maps
00022000     56   56 rwx----  [ heap ]
03000000   1024    - rw-s---  dev:533,2 ino:634348912
04000000   1024 1024 rw-----  dev:533,2 ino:634348912
05000000   1024  512 rw--R--  dev:533,2 ino:634348912
06000000   1024 1024 rw-----  [ anon ]
07000000    512  512 rw--R--  [ anon ]
08000000   8192    - rwxs---  [ dism shmid=0x0 ]
09000000   8192    - rwxs---  [ dism shmid=0x1 ]
0A000000   8192    - rwxsR--  [ ism shmid=0x2 ]
0B000000   8192    - rwxsR--  [ ism shmid=0x3 ]
FECA0000   2104    - r-x----  [ text ] libc.so.1
FEEBE000     48   48 rwx----  [ data ] libc.so.1
FEECA000     24   24 rwx----  [ data ] libc.so.1
FF370000     24   24 rw-----  [ anon ]
FF380000    240    - r-x----  [ text ] ld.so.1
FF3CC000      8    - r------  [ dtrace ] ld.so.1
FF3D4000     32   32 rw-----  [ anon ]
FF3DE000     16   16 rwx----  [ data ] ld.so.1
FF3EE000      8    - r--s---  [ anon ]
FF3F2000      8    - r--s---  [ anon ]
FF3F6000      8    - r--s---  [ anon ]
FF3FA000      8    - r-x----  [ anon ]
FFBF0000     64   64 rw-----  [ stack ]
-------- ------ ----
total Kb  40040 3344

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(8) command.

Example 5 Labeling Stacks in a Multi-threaded Process
example$ pmap 8703
8703:   ./stacks
00010000    8K r-x----  [ text ] /tmp/stacks
00020000    8K rwx----  [ data ] /tmp/stacks
00022000   56K rwx----  [ heap ]
FE79A000    8K rw--R--  [ stack tid=11 ]
FE89A000    8K rw--R--  [ stack tid=10 ]
FE99A000    8K rw--R--  [ stack tid=9 ]
FEA9A000    8K rw--R--  [ stack tid=8 ]
FEB9A000    8K rw--R--  [ stack tid=7 ]
FEC9A000    8K rw--R--  [ stack tid=6 ]
FECA0000 2048K r-x----  [ text ] /lib/libc.so.1
FEEA0000   56K r-x----  [ text ] /lib/libc.so.1
FEEBE000   48K rwx----  [ data ] /lib/libc.so.1
FEECA000   24K rwx----  [ data ] /lib/libc.so.1
FEFFA000    8K rw--R--  [ stack tid=5 ]
FF0FA000    8K rw--R--  [ stack tid=4 ]
FF1FA000    8K rw--R--  [ stack tid=3 ]
FF200000   64K rw-----  [ anon ]
FF31A000    8K rw--R--  [ stack tid=2 ]
FF320000   64K rw-----  [ anon ]
FF340000  128K rw-----  [ anon ]
FF370000   24K rw-----  [ anon ]
FF380000  192K r-x----  [ text ] /lib/ld.so.1
FF3B0000   48K r-x----  [ text ] /lib/ld.so.1
FF3C8000    8K rw-----  [ altstack tid=8 ]
FF3CC000    8K r------  [ dtrace ] /lib/ld.so.1
FF3D4000   32K rw-----  [ anon ]
FF3DE000   16K rwx----  [ data ] /lib/ld.so.1
FF3E6000    8K rw-----  [ altstack tid=4 ]
FF3EA000    8K rw-s---  [ anon ]
FF3EE000    8K r--s---  [ anon ]
FF3F2000    8K r--s---  [ anon ]
FF3F6000    8K r--s---  [ anon ]
FF3FA000    8K r-x----  [ anon ]
FFBF0000   64K rw-----  [ stack ]
Example 6 Displaying lgroup Memory Allocation

The following example displays lgroup memory allocation by mapping.


example$ pmap -bL `pgrep nscd`
8629:   /usr/sbin/nscd
000000B8886D6000      8K rw-----  - [ heap ]
000000B8886D8000     32K rw-----  2 [ heap ]
000000B8886E0000     64K rw-----  2 [ heap ]
000000B8886F0000    256K rw-----  1 [ heap ]
...
0007FE2990700000     64K r-x----  1 [ text ] libucrypto.so.1
0007FE2990710000     64K r-x----  2 [ data ] libucrypto.so.1
...
0007FE2995200000      8K r-x----  1 [ text ] nss_dns.so.1
0007FE2995202000     16K r-x----  2 [ text ] nss_dns.so.1
0007FE2995306000      8K rwx----  2 [ data ] nss_dns.so.1
...
0007FE2995800000     64K r-x----  2 [ text ] nss_ldap.so.1
0007FE2995810000     16K r-x----  2 [ text ] nss_ldap.so.1
0007FE2995914000      8K rwx----  2 [ data ] nss_ldap.so.1
...
0007FE2995C00000     16K r-x----  1 [ text ] nss_files.so.1
0007FE2995C04000     32K r-x----  2 [ text ] nss_files.so.1
0007FE2995D0C000      8K rwx----  2 [ data ] nss_files.so.1
...
0007FE2997300000    192K r-x----  1 [ text ] ld.so.1
0007FE2997330000     64K r-x----  2 [ text ] ld.so.1
0007FE2997440000      8K r------  - [ dtrace ] ld.so.1
0007FE2997542000     24K rwx----  2 [ data ] ld.so.1
0007FE2997548000      8K rwx----  2 [ data ] ld.so.1
0007FE2997600000     64K r-x----  1 [ text ] nscd
0007FE2997610000     64K r-x----  2 [ text ] nscd
0007FE2997620000     64K r-x----  1 [ text ] nscd
0007FE2997630000     16K r-x----  - [ text ] nscd
...
0007FE2997734000     32K rwx----  2 [ data ] nscd
...
0007FE299777C000      8K rw-s---  2 [ anon ]
0007FE2997780000     64K rw-----  2 [ anon ]
0007FE2997796000      8K r-x----  - [ anon ]
0007FE299779E000      8K r--s---  1 [ anon ]
0007FE29977A2000      8K r--s---  1 [ anon ]
0007FE29977A6000      8K r--s---  - [ anon ]
FFFFFE5DEF5F0000     16K rw-----  - [ stack ]
FFFFFE5DEF5F4000      8K rw-----  2 [ stack ]
         total   177264K



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(7) for descriptions of the following attributes:

ATTRIBUTE TYPE
ATTRIBUTE VALUE
Availability
system/core-os
Interface Stability
See below.

The command syntax is Committed. The –L option and the output formats are Uncommitted.

See Also

basename(1), ldd(1), lgrpinfo(1), madv.so.1(1), mdb(1), plgrp(1), pmadvise(1), proc(1), ps(1), memcntl(2), meminfo(2), mlock(3C), mmap(2), shmget_osm(2), shmop(2), dlopen(3C), proc(5), attributes(7), cmi(7), coreadm(8), prstat(8), swap(8)

Notes

Core files do not contain all the information present in the live running image of a process. For example, a segment of memory, reported by pmap as ISM in a running process, may be reported as heap when pmap is run against a core file from the same process.