Go to main content

マニュアルページ セクション 1: ユーザーコマンド

印刷ビューの終了

更新: 2022年7月27日
 
 

pmap(1)

名前

pmap - プロセスのアドレス空間に関する情報を表示します

形式

/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]...

説明

pmap ユーティリティーは、プロセスのアドレス空間に関する情報を表示します。

オプション

サポートしているオプションは、次のとおりです。

–a

共有マッピングの匿名およびスワップ予約を表示します。

–A address_range

表示するアドレス空間のサブレンジを指定します。address_range は、次のいずれかの形式で指定します。

start_addr

単一のアドレスを指定すると、そのアドレスを含むセグメント (–L オプションが指定されている場合は、ページ) を出力するように制限されます。指定されたアドレスがセグメントの開始アドレスに対応している場合は、–L オプションが指定されていても、常にセグメント全体が出力に含められます。

start_addr,

アドレスの後ろにコンマが付いていて、終了アドレスがない場合は、指定されたアドレスを含むセグメント以降のすべてのセグメント (–L オプションが指定されている場合は、ページ) を出力するように制限されます。

start_addr, end_addr

開始アドレスと終了アドレスによって指定されたアドレス範囲によって、出力が、開始アドレスを含むセグメントまたはページから終了アドレスを含むセグメントまたはページまでのすべてのセグメント (–L オプションが存在する場合はページ) に制限されます。

,end_addr

開始アドレスのないコンマで始まるアドレス範囲によって、出力が、存在する最初のセグメントまたはページから指定されたアドレスを含むセグメント (–L オプションが存在する場合はページ) までのすべてのセグメント (–L オプションが存在する場合はページ) に制限されます。

–b

マップファイルの完全なファイルパスではなくベース名を出力します (basename(1) を参照)。

–F

強制。別のプロセスが制御していても、ターゲットプロセスを捕捉します。

詳細は、「使用法」セクションを参照してください。

–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

未解決の動的リンカーマップ名を表示します。

–L

仮想メモリーを裏打ちする物理メモリーが含まれている lgroup を出力します。

–r

プロセスの予約済みアドレスを表示します。

–s

HAT ページサイズ情報を表示します。

–S

マッピングごとのスワップ予約情報を表示します。詳細は、「使用法」セクションを参照してください。

–x

マッピングごとの追加情報を表示します。詳細は、「使用法」セクションを参照してください。

–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

使用法に関するメッセージを出力したあと、すぐに終了します。

使用法

pmap ユーティリティーは、プロセスのアドレス空間に関する情報を表示します。

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

デフォルトでは、pmap は、プロセスにマップされる仮想アドレスの順序で、すべてのマッピングを表示します。マッピングサイズ、フラグ、およびマップされたオブジェクト名が表示されます。

–A オプションを使用すると、指定されたアドレスの範囲への出力を制限できます。指定されたアドレスは、セグメント境界まで切り上げまたは切り下げられ、出力にはそれらのアドレスの範囲内のセグメントが含められます。

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

–L オプションを使用すると、指定された仮想メモリーを裏打ちする物理メモリーを含む lgroup を判別できます。–A オプションを一緒に使用すると、指定されたアドレスは、ページ境界まで切り上げまたは切り下げられ、出力はそれらのアドレスの範囲内のページに制限されます。

これを plgrp(1) と組み合わせて使用すると、目的のスレッドのホーム lgroup がメモリーが配置されている場所と同じであるかどうかや、そのスレッドにメモリー近傍性が存在すべきかどうかを検出できます。lgrpinfo(1) コマンドもこの pmap オプションと一緒に使用すると役に立ちます。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.

また、スレッドとメモリーの配置は、plgrp(1), pmadvise (1)、または madv.so.1(1) を使用して変更できます。

プロセスの匿名/ロックマッピングの詳細
/usr/bin/pmap -x [ -aslF ] [-A address_range] [ pid] ...

–x オプションは、マッピングごとの追加情報を表示します。このオプションを指定すると、各マッピングのサイズ、常駐物理メモリー (RSS) の量、匿名メモリーの量、およびロックされたメモリーの量が表示されます。この中には、このプロセスが原因でカーネルアドレス空間によって取得される匿名メモリーは含まれません。

スワップ予約
/usr/bin/pmap -S [ -alF ] [-A address_range] [ pid | core ] ...

–S オプションは、マッピングごとのスワップ予約情報を表示します。

–F フラグを使用するときは注意してください。2 つの制御プロセスを 1 つの犠牲プロセスに課すと混乱することがあります。プライマリ制御プロセス (通常はデバッガ) が犠牲プロセスを停止し、かつ問題の proc ツールが適用された時点でプライマリ制御プロセスが何も実行していない場合にのみ、安全性が保証されます。

表示書式

–s または –L オプションが指定されていないかぎり、プロセス内のマッピングごとに 1 行が出力されます。–s オプションを指定すると、各ハードウェア変換ページサイズの連続するマッピングごとに 1 行が出力されます。–L オプションが指定されている場合は、同じ lgroup に属する隣接するマッピングに対して 1 行が出力されます。–L オプションと –s オプションの両方を指定すると、同じ lgroup に属する各ハードウェア変換ページサイズの連続するマッピングごとに 1 行が出力されます。列ヘッダーは以降の括弧の中に示されています。

Virtual Address (Address)

出力の最初の列は、各マッピングの開始仮想アドレスを表しています。仮想アドレスは昇順で表示されます。

仮想マッピングサイズ (Kbytes)

各マッピングの仮想サイズ (K バイト単位)。See –scale.

常駐物理メモリー (RSS)

ほかのアドレス空間と共有されるものを含む、マッピングごとに常駐する物理メモリーの量 (K バイト単位)。See –scale.

Anonymous Memory (Anon)

指定されたマッピングに関連付けられている匿名メモリーの (システムページサイズを使用してカウントされた) ページ数。–a オプションを指定しないかぎり、ほかのアドレス空間と共有される匿名メモリーは含まれません。

匿名メモリーは、プロセスヒープ、スタック、および MAP_PRIVATE でマップされたマッピングを持つ「コピーオンライト」ページで報告されます。詳細は、mmap(2) のマニュアルページを参照してください。

ロック済み (Lock)

マッピング内でロックされたページ数。典型的な例として、mlock() でロックされたメモリーや、SHM_SHARE_MMU で作成された System V 共有メモリーがあります。

アクセス権/フラグ (Mode)

仮想メモリーのアクセス権がマッピングごとに表示されます。有効なアクセス権は次のとおりです。

r:

当該プロセスによってマッピングを読み取ることができます。

w:

当該プロセスによってマッピングを書き込むことができます。

x:

当該プロセスによってマッピング内に存在する命令を実行できます。

各マッピングの追加情報を示すフラグが表示される場合があります。

s:

監視されたアドレス空間での変更がマップされたファイルに反映され、マッピングを共有するほかのすべてのプロセスから認識できるように、マッピングが共有されます。

i:

このマッピングは ADI に対して有効です。

R:

このマッピング用のスワップ空間が予約されていません。MAP_NORESERVE で作成されたマッピングと System V ISM 共有メモリーマッピングは、スワップ空間を予約しません。

I/E:

マッピングにはアクティブなプルーニング要求があり、コアファイルに含めるか除外されます。「I」は含めることを示し、「E」は除外することを示します。

*:

マッピングのデータがコアファイル内に存在しません (コアファイルに適用される場合にのみ該当)。コアファイルの内容の構成については、coreadm(8) のマニュアルページを参照してください。

Lgroup (Lgrp)

指定されたマッピングを裏打ちする物理メモリーが含まれている lgroup。

マッピング名 (Mapped File)

各マッピングの説明名称。表示されるマッピング名の主要なタイプは次のとおりです。

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.ファイル名を解決できない場合、pmap はファイルが含まれているデバイスのメジャー番号とマイナー番号、およびファイルのファイルシステム i ノード番号を表示します。

Anonymous memory:

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

pmap コマンドは、既知のいくつかの匿名メモリーマッピングについては、その一般的な名前を表示します。

[ heap ]

マッピングはプロセスヒープです。

[ stack ]

マッピングはメインスタックです。

[ stack tid=n ]

マッピングはスレッド n のスタックです。

[ altstack tid=n ]

マッピングは、スレッド n の代替シグナルスタックとして使用されます。

マッピングの共通名が不明な場合、pmap はマッピング名として [ anon ] を表示します。

System V Shared Memory:

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

shmid=n:

マッピングは、System V 共有メモリーマッピングです。マッピングの作成に使用された共有メモリー識別子が報告されます。

ism shmid=n:

マッピングは、System V 共有メモリーの「Intimate Shared Memory」バリエーションです。ISM mappings are created with the SHM_SHARE_MMU flag set, in accordance with shmat(2).

dism shmid=n:

マッピングは、ISM のページング可能バリエーションです。Pageable ISM is created with the SHM_PAGEABLE flag set in accordance with shmat(2).

osm shmid=n:

マッピングは ISM の「最適化共有メモリー」(OSM) バリアントで、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)).固定アドレスのマッピング操作は予約済み仮想アドレス範囲の上にマップすることができ、その場合はマッピング名が新しいマッピングの名前に変更されます。固定アドレスのマッピングがマップ解除された場合、アドレス範囲は [ reserved ] に戻ります。

ほかのマッピングタイプとは異なり、予約済み仮想アドレス範囲は、仮想アドレスの穴など「無効な」場所も含め、プロセスのアドレス空間の任意の場所に割り当てることができます。詳細は、memcntl(2) の MC_RESERVE_AS を参照してください。

CMI Memory:

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

cmi cmi_seg=n:

このマッピングはローカルの CMI メモリーです。マッピングの作成に使用されたセグメントハンドルが報告されます。

cmi cmi_seg=n (remote):

このマッピングはリモートの CMI メモリーです。マッピングの作成に使用されたセグメントハンドルが報告されます。

Other:

Mappings of other objects, including devices such as frame buffers.その他のマップされたオブジェクトのマッピング名は表示されません。

Page Size (Pgsz)

このマッピングのハードウェアアドレス変換に使用されるページサイズ (K バイト単位)。See –scale.詳細は、memcntl(2) のマニュアルページを参照してください。

Swap Space (Swap)

このマッピング用に予約されているスワップ空間の量 (K バイト単位)。つまり、コマンド swap –s で表示される予約可能スワップ空間の合計使用可能プールから差し引かれるスワップ空間。See –scale.詳細は、swap(8) のマニュアルページを参照してください。

使用例 1 Displaying Process Mappings

デフォルトでは、pmap はターゲットプロセスのアドレス空間内のマッピングごとに 1 行を表示します。次の例では、一般的なシェルのアドレス空間を表示します。


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
使用例 2 メモリー割り当てとマッピングタイプの表示

–x オプションを使用すると、マッピングごとにメモリー割り当てとマッピングタイプに関する情報を表示できます。常駐メモリー、共有されない匿名メモリー、およびロックされたメモリーの量がマッピングごとに表示されます。


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    -

各マッピングの常駐メモリーと匿名メモリーの数字を使用することで、プロセスの各追加インスタンスによって使用される増分メモリーの量を見積もることができます。

前述の例では、シェルプロセスには 5668K バイトの常駐メモリーがあります。ただし、シェルによって使用される大量の物理メモリーは、ほかのプロセスと共有されます。複数のプロセスが同じプログラムを実行する場合、それらのプロセスは互いに可能なかぎり物理メモリーを共有し、共有しない部分については匿名メモリーを割り当てます。前述の例では、2 つ目以降の各シェルプロセスは約 984K バイトの追加物理メモリーを使用します。

異なるマッピングタイプを含むプロセスの出力形式を、より複雑な例で示します。この例では、マッピングは次のとおりです。

0001000

実行可能ファイルのテキスト (「maps」プログラムからマップ)

0002000

実行可能ファイルのデータ (「maps」プログラムからマップ)

0002200

プログラムヒープ

0300000

マップファイル (MAP_SHARED でマップ)

0400000

マップファイル (MAP_PRIVATE でマップ)

0500000

マップファイル (MAP_PRIVATE | MAP_NORESERVE でマップ)

0600000

匿名メモリー (/dev/zero をマップして作成)

0700000

匿名メモリー (/dev/zeroMAP_NORESERVE でマップして作成)

0800000

DISM 共有メモリーマッピング (SHM_PAGEABLE で作成。mlock(3C) 経由で 8M バイトをロック)

0900000

DISM 共有メモリーマッピング (SHM_PAGEABLE で作成。ページの 4M バイトを更新)

0A00000

ISM 共有メモリーマッピング (SHM_SHARE_MMU で作成。ページの更新なし)

0B00000

ISM 共有メモリーマッピング (SHM_SHARE_MMU で作成)

0C00000

リモート CMI メモリーマッピング

0D00000

ローカル CMI メモリーマッピング


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
使用例 3 ページサイズ情報の表示

–s オプションを使用すると、アドレス空間の各部分のハードウェア変換ページサイズを表示できます。(Solaris の複数ページサイズのサポートについては、memcntl(2) を参照してください)。

次の例では、マッピングの大部分が 8K バイトのページサイズを使用していますが、共有メモリーセグメントは 4M バイトのページサイズを使用していることがわかります。

同じページサイズの常駐ページの非連続領域は、別々のマッピングとして報告されます。次の例では、libc.so テキストの一部しか常駐していないため、libc.so ライブラリは複数の別々のマッピングとして報告されます。


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
使用例 4 スワップ予約の表示

–S オプションを使用すると、プロセスのスワップ予約の内容を表示できます。予約されたスワップ空間の量がプロセス内のマッピングごとに表示されます。共有マッピングのスワップ予約はシステム全体で 1 度しか行われないため、ゼロとして報告されます。

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

スワップ予約情報を使用すると、各追加プロセスによって使用される仮想スワップの量を見積もることができます。各プロセスは、大域仮想スワッププールから仮想スワップを消費します。大域スワップ予約は、swap(8) コマンドの「avail」フィールドによって報告されます。

使用例 5 マルチスレッドプロセスでのスタックのラベル付け
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 ]
使用例 6 lgroup メモリーの割り当ての表示

次の例では、lgroup メモリーの割り当てをマッピングごとに表示します。


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



終了ステータス

次の終了ステータスが返されます。

0

正常終了。

0 以外

エラーが発生しました。

ファイル

/proc/*

プロセスファイル

/usr/proc/lib/*

proc ツールサポートファイル

属性

属性についての詳細は、マニュアルページの attributes(7) を参照してください。

属性タイプ
属性値
使用条件
system/core-os
インタフェースの安定性
下記を参照。

コマンドの構文は「確実」です。–L オプションおよび出力形式は「不確実」です。

関連項目

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)

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.