pmap(1) 맨 페이지 - 윈디하나의 솔라나라

개요

섹션
맨 페이지 이름
검색(S)

pmap(1)

pmap(1)                          User Commands                         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 seg‐
               ment, 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 con‐
           trol.

           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 infor‐
           mation, 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 dis‐
               played 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 dis‐
               played 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  char‐
           acteristics 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  con‐
       trolling  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 noth‐
       ing 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  paren‐
       theses 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  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.


           i:      The mapping is enabled for ADI.


           R:      Swap space is not reserved for this mapping. Mappings  cre‐
                   ated with MAP_NORESERVE and System V ISM shared memory map‐
                   pings 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 informa‐
                   tion 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 anony‐
               mous 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  Sys‐
                   tem  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 buf‐
               fers. 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 --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 avail‐
           able pool of reservable swap space that is displayed with the  com‐
           mand  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 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 $$
         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 pos‐
       sible, 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  fur‐
       ther 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 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 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:


       tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) ATTRIBUTE  TYPEAT‐
       TRIBUTE  VALUE  _  Availabilitysystem/core-os  _ Interface StabilitySee
       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), pmad‐
       vise(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  run‐
       ning  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.



Oracle Solaris 11.4               18 Sep 2021                          pmap(1)
맨 페이지 내용의 저작권은 맨 페이지 작성자에게 있습니다.
RSS ATOM XHTML 5 CSS3