'\" te .\" Copyright (c) 1998, 2015, Oracle and/or its affiliates.All rights reserved. .TH pmap 1 "2015 年 9 月 22 日" "SunOS 5.11" "ユーザーコマンド" .SH 名前 pmap \- プロセスのアドレス空間に関する情報を表示します .SH 形式 .LP .nf \fB/usr/bin/pmap\fR [\fB-rslF\fR] [\fB-A\fR \fIaddress_range\fR] [\fIpid\fR | \fIcore\fR]... .fi .LP .nf \fB/usr/bin/pmap\fR \fB-L\fR [\fB-rslF\fR] [\fB-A\fR \fIaddress_range\fR] [\fIpid\fR] ... .fi .LP .nf \fB/usr/bin/pmap\fR \fB-x\fR [\fB-aslF\fR] [\fB-A\fR \fIaddress_range\fR] [\fIpid\fR]... .fi .LP .nf \fB/usr/bin/pmap\fR \fB-S\fR [\fB-alF\fR] [\fB-A\fR \fIaddress_range\fR] [\fIpid\fR | \fIcore\fR]... .fi .SH 機能説明 .sp .LP \fBpmap\fR ユーティリティーは、プロセスのアドレス空間に関する情報を表示します。 .SH オプション .sp .LP サポートしているオプションは、次のとおりです。 .sp .ne 2 .mk .na \fB\fB-a\fR\fR .ad .RS 20n .rt 共有マッピングの匿名およびスワップ予約を表示します。 .RE .sp .ne 2 .mk .na \fB\fB-A\fR \fIaddress_range\fR\fR .ad .RS 20n .rt 表示するアドレス空間のサブレンジを指定します。\fIaddress_range\fR は、次のいずれかの形式で指定します。 .sp .ne 2 .mk .na \fB\fIstart_addr\fR\fR .ad .sp .6 .RS 4n 単一のアドレスを指定すると、そのアドレスを含むセグメント (\fB-L\fR オプションが指定されている場合は、ページ) を出力するように制限されます。指定されたアドレスがセグメントの開始アドレスに対応している場合は、\fB-L\fR オプションが指定されていても、常にセグメント全体が出力に含められます。 .RE .sp .ne 2 .mk .na \fB\fIstart_addr\fR\fB,\fR\fR .ad .sp .6 .RS 4n アドレスの後ろにコンマが付いていて、終了アドレスがない場合は、指定されたアドレスを含むセグメント以降のすべてのセグメント (\fB-L\fR オプションが指定されている場合は、ページ) を出力するように制限されます。 .RE .sp .ne 2 .mk .na \fB\fIstart_addr\fR\fB,\fR \fIend_addr\fR\fR .ad .sp .6 .RS 4n 開始アドレスと終了アドレスによって指定されたアドレス範囲によって、出力が、開始アドレスを含むセグメントまたはページから終了アドレスを含むセグメントまたはページまでのすべてのセグメント (\fB-L\fR オプションが存在する場合はページ) に制限されます。 .RE .sp .ne 2 .mk .na \fB\fB,\fR\fIend_addr\fR\fR .ad .sp .6 .RS 4n 開始アドレスのないコンマで始まるアドレス範囲によって、出力が、存在する最初のセグメントまたはページから指定されたアドレスを含むセグメント (\fB-L\fR オプションが存在する場合はページ) までのすべてのセグメント (\fB-L\fR オプションが存在する場合はページ) に制限されます。 .RE .RE .sp .ne 2 .mk .na \fB\fB-F\fR\fR .ad .RS 20n .rt 強制。別のプロセスが制御していても、ターゲットプロセスを捕捉します。 .sp 詳細は、「使用法」セクションを参照してください。 .RE .sp .ne 2 .mk .na \fB\fB-l\fR\fR .ad .RS 20n .rt 未解決の動的リンカーマップ名を表示します。 .RE .sp .ne 2 .mk .na \fB\fB-L\fR\fR .ad .RS 20n .rt 仮想メモリーを戻す物理メモリーが含まれている lgroup を出力します。 .RE .sp .ne 2 .mk .na \fB\fB-r\fR\fR .ad .RS 20n .rt プロセスの予約済みアドレスを表示します。 .RE .sp .ne 2 .mk .na \fB\fB-s\fR\fR .ad .RS 20n .rt \fBHAT\fR ページサイズ情報を表示します。 .RE .sp .ne 2 .mk .na \fB\fB-S\fR\fR .ad .RS 20n .rt マッピングごとのスワップ予約情報を表示します。詳細は、「使用法」セクションを参照してください。 .RE .sp .ne 2 .mk .na \fB\fB-x\fR\fR .ad .RS 20n .rt マッピングごとの追加情報を表示します。詳細は、「使用法」セクションを参照してください。 .RE .SH 使用法 .sp .LP \fBpmap\fR ユーティリティーは、プロセスのアドレス空間に関する情報を表示します。 .sp .ne 2 .mk .na \fBプロセスマッピング\fR .ad .sp .6 .RS 4n .sp .in +2 .nf /usr/bin/pmap [ -rslF ] [-A \fIaddress_range\fR] [ \fIpid\fR | \fIcore\fR ] ... .fi .in -2 .sp デフォルトでは、\fBpmap\fR は、プロセスにマップされる仮想アドレスの順序で、すべてのマッピングを表示します。マッピングサイズ、フラグ、およびマップされたオブジェクト名が表示されます。 .sp \fB-A\fR オプションを使用すると、指定されたアドレスの範囲への出力を制限できます。指定されたアドレスは、セグメント境界まで切り上げまたは切り下げられ、出力にはそれらのアドレスの範囲内のセグメントが含められます。 .RE .sp .ne 2 .mk .na \fBプロセス Lgroup マッピング\fR .ad .sp .6 .RS 4n .sp .in +2 .nf /usr/bin/pmap -L [ -rslF ] [-A \fIaddress_range\fR] \fIpid\fR ... .fi .in -2 .sp \fB-L\fR オプションを使用すると、指定された仮想メモリーを戻す物理メモリーを含む lgroup を判別できます。\fB-A\fR オプションを一緒に使用すると、指定されたアドレスは、ページ境界まで切り上げまたは切り下げられ、出力はそれらのアドレスの範囲内のページに制限されます。 .sp これを \fBplgrp\fR(1) と組み合わせて使用すると、目的のスレッドのホーム lgroup がメモリーが配置されている場所と同じであるかどうかや、そのスレッドにメモリー近傍性が存在すべきかどうかを検出できます。\fBlgrpinfo\fR(1) コマンドもこの \fBpmap\fR オプションと一緒に使用すると役に立ちます。これは、メモリーが配分される lgroup についての詳細な情報が得られる lgroup 階層、コンテンツ、および特性や、それらの lgroup 同士の関係およびその他の lgroup との関係を表示します。 .sp また、スレッドとメモリーの配置は、\fBplgrp\fR(1)、\fBpmadvise\fR(1)、または \fBmadv.so.1\fR(1) を使用して変更できます。 .RE .sp .ne 2 .mk .na \fBプロセスの匿名またはロックされたマッピングの詳細\fR .ad .sp .6 .RS 4n .sp .in +2 .nf /usr/bin/pmap -x [ -aslF ] [-A \fIaddress_range\fR] [ \fIpid\fR] ... .fi .in -2 .sp \fB-x\fR オプションは、マッピングごとの追加情報を表示します。このオプションを指定すると、各マッピングのサイズ、常駐物理メモリー (RSS) の量、匿名メモリーの量、およびロックされたメモリーの量が表示されます。この中には、このプロセスが原因でカーネルアドレス空間によって取得される匿名メモリーは含まれません。 .RE .sp .ne 2 .mk .na \fBスワップ予約\fR .ad .sp .6 .RS 4n .sp .in +2 .nf /usr/bin/pmap -S [ -alF ] [-A \fIaddress_range\fR] [ \fIpid\fR | \fIcore\fR ] ... .fi .in -2 .sp \fB-S\fR オプションは、マッピングごとのスワップ予約情報を表示します。 .RE .sp .LP \fB-F\fR フラグを使用するときは注意してください。2 つの制御プロセスを 1 つの犠牲プロセスに課すと混乱することがあります。プライマリ制御プロセス (通常はデバッガ) が犠牲プロセスを停止し、かつ問題の \fBproc\fR ツールが適用された時点でプライマリ制御プロセスが何も実行していない場合にのみ、安全性が保証されます。 .SH 表示書式 .sp .LP \fB-s\fR または \fB-L\fR オプションが指定されていないかぎり、プロセス内のマッピングごとに 1 行が出力されます。\fB-s\fR オプションを指定すると、各ハードウェア変換ページサイズの連続するマッピングごとに 1 行が出力されます。\fB-L\fR オプションが指定されている場合は、同じ lgroup に属する隣接するマッピングに対して 1 行が出力されます。\fB-L\fR オプションと \fB-s\fR オプションの両方を指定すると、同じ lgroup に属する各ハードウェア変換ページサイズの連続するマッピングごとに 1 行が出力されます。列ヘッダーは以降の括弧の中に示されています。 .sp .ne 2 .mk .na \fB仮想アドレス (\fBAddress\fR)\fR .ad .sp .6 .RS 4n 出力の最初の列は、各マッピングの開始仮想アドレスを表しています。仮想アドレスは昇順で表示されます。 .RE .sp .ne 2 .mk .na \fB仮想マッピングサイズ (\fBKbytes\fR)\fR .ad .sp .6 .RS 4n 各マッピングの仮想サイズ (K バイト単位)。 .RE .sp .ne 2 .mk .na \fB常駐物理メモリー (\fBRSS\fR)\fR .ad .sp .6 .RS 4n ほかのアドレス空間と共有されるものを含む、マッピングごとに常駐する物理メモリーの量 (K バイト単位)。 .RE .sp .ne 2 .mk .na \fB匿名メモリー (\fBAnon\fR)\fR .ad .sp .6 .RS 4n 指定されたマッピングに関連付けられている匿名メモリーの (システムページサイズを使用してカウントされた) ページ数。\fB-a\fR オプションを指定しないかぎり、ほかのアドレス空間と共有される匿名メモリーは含まれません。 .sp 匿名メモリーは、プロセスのヒープおよびスタックに関して、また \fBMAP_PRIVATE\fR (\fBmmap\fR(2) を参照) でマップされたマッピングを含む「書き込み時コピー」ページに関して報告されます。 .RE .sp .ne 2 .mk .na \fBロック (\fBLocked\fR)\fR .ad .sp .6 .RS 4n マッピング内でロックされたページ数。典型的な例として、\fBmlock()\fR でロックされたメモリーや、\fBSHM_SHARE_MMU\fR で作成された System V 共有メモリーがあります。 .RE .sp .ne 2 .mk .na \fBアクセス権/フラグ (\fBMode\fR)\fR .ad .sp .6 .RS 4n 仮想メモリーのアクセス権がマッピングごとに表示されます。有効なアクセス権は次のとおりです。 .sp .ne 2 .mk .na \fB\fBr:\fR\fR .ad .RS 6n .rt 当該プロセスによってマッピングを読み取ることができます。 .RE .sp .ne 2 .mk .na \fB\fBw:\fR\fR .ad .RS 6n .rt 当該プロセスによってマッピングを書き込むことができます。 .RE .sp .ne 2 .mk .na \fB\fBx:\fR\fR .ad .RS 6n .rt 当該プロセスによってマッピング内に存在する命令を実行できます。 .RE 各マッピングの追加情報を示すフラグが表示される場合があります。 .sp .ne 2 .mk .na \fB\fBs:\fR\fR .ad .RS 8n .rt 監視されたアドレス空間での変更がマップされたファイルに反映され、マッピングを共有するほかのすべてのプロセスから認識できるように、マッピングが共有されます。 .RE .sp .ne 2 .mk .na \fB\fBi:\fR\fR .ad .RS 8n .rt このマッピングは ADI に対して有効です。 .RE .sp .ne 2 .mk .na \fB\fBR:\fR\fR .ad .RS 8n .rt このマッピング用のスワップ空間が予約されていません。\fBMAP_NORESERVE\fR で作成されたマッピングと System V \fBISM\fR 共有メモリーマッピングは、スワップ空間を予約しません。 .RE .sp .ne 2 .mk .na \fB\fB*:\fR\fR .ad .RS 8n .rt マッピングのデータがコアファイル内に存在しません (コアファイルに適用される場合にのみ該当)。コアファイルコンテンツの構成については、\fBcoreadm\fR(1M) を参照してください。 .RE .sp .ne 2 .mk .na \fB\fBI/E:\fR\fR .ad .RS 8n .rt マッピングにはアクティブなプルーニング要求があり、コアファイルに含めるか除外されます。「I」は含めることを示し、「E」は除外することを示します。 .RE .RE .sp .ne 2 .mk .na \fBLgroup (\fBLgrp\fR)\fR .ad .sp .6 .RS 4n 指定されたマッピングを戻す物理メモリーが含まれている lgroup。 .RE .sp .ne 2 .mk .na \fBマッピング名 (\fBMapped File\fR)\fR .ad .sp .6 .RS 4n 各マッピングの説明名称。表示されるマッピング名の主要なタイプは次のとおりです。 .RS +4 .TP .ie t \(bu .el o \fBマップされたファイル:\fR プロセスとファイル間のマッピングでは、\fBpmap\fR コマンドはマッピングごとにファイル名の解決を試みます。ファイル名を解決できない場合、\fBpmap\fR はファイルが含まれているデバイスのメジャー番号とマイナー番号、およびファイルのファイルシステム i ノード番号を表示します。 .RE .RS +4 .TP .ie t \(bu .el o \fB匿名メモリー:\fR ファイルシステム内のどの名前付きオブジェクトまたはファイルにも関連しないメモリーは \fB[ anon ]\fR として報告されます。 .sp \fBpmap\fR コマンドは、既知のいくつかの匿名メモリーマッピングについては、その一般的な名前を表示します。 .RS .sp .ne 2 .mk .na \fB\fB[ heap ]\fR\fR .ad .RS 22n .rt マッピングはプロセスヒープです。 .RE .sp .ne 2 .mk .na \fB\fB[ stack ]\fR\fR .ad .RS 22n .rt マッピングはメインスタックです。 .RE .sp .ne 2 .mk .na \fB\fB[ stack tid=\fIn\fR ]\fR\fR .ad .RS 22n .rt マッピングはスレッド \fIn\fR のスタックです。 .RE .sp .ne 2 .mk .na \fB\fB[ altstack tid=\fIn\fR ]\fR\fR .ad .RS 22n .rt マッピングは、スレッド \fIn\fR の代替シグナルスタックとして使用されます。 .RE .RE マッピングの共通名が不明な場合、\fBpmap\fR はマッピング名として \fB[ anon ]\fR を表示します。 .RE .RS +4 .TP .ie t \(bu .el o \fBSystem V 共有メモリー:\fR System V 共有メモリーシステムコールを使用して作成されたマッピングは、次に示す名前で報告されます。 .RS .sp .ne 2 .mk .na \fB\fBshmid=n:\fR\fR .ad .RS 17n .rt マッピングは、System V 共有メモリーマッピングです。マッピングの作成に使用された共有メモリー識別子が報告されます。 .RE .sp .ne 2 .mk .na \fB\fBism shmid=n:\fR\fR .ad .RS 17n .rt マッピングは、System V 共有メモリーの「Intimate Shared Memory」バリエーションです。\fBISM\fR マッピングは、\fBshmat\fR(2) (\fBshmop\fR(2) を参照) に従って、設定されている \fBSHM_SHARE_MMU\fR フラグを使って作成されます。 .RE .sp .ne 2 .mk .na \fB\fBdism shmid=n:\fR\fR .ad .RS 17n .rt マッピングは、\fBISM\fR のページング可能バリエーションです。ページング可能な \fBISM\fR は、\fBshmat\fR(2) (\fBshmop\fR(2) を参照) に従って、設定されている \fBSHM_PAGEABLE\fR フラグを使って作成されます。 .RE .sp .ne 2 .mk .na \fB\fBosm shmid=n:\fR\fR .ad .RS 17n .rt マッピングは ISM の「最適化共有メモリー」(OSM) バリアントで、\fBshmget_osm\fR(2) を使用して作成されました。 .RE .RE .RE .RS +4 .TP .ie t \(bu .el o 予約済み仮想アドレス: 範囲は [ \fBreserved\fR ] として報告されます。範囲を作成することにより、固定でないアドレスのメモリーマッピング操作 (\fBmmap\fR(2) および \fBshmat\fR(2)) のためにカーネルが予約済み範囲内のアドレスを選択することを防ぎます。固定アドレスのマッピング操作は予約済み仮想アドレス範囲の上にマップすることができ、その場合はマッピング名が新しいマッピングの名前に変更されます。固定アドレスのマッピングがマップ解除された場合、アドレス範囲は [ \fBreserved\fR ] に戻ります。 .sp ほかのマッピングタイプとは異なり、予約済み仮想アドレス範囲は、仮想アドレスの穴など「無効な」場所も含め、プロセスのアドレス空間の任意の場所に割り当てることができます。詳細は、\fBmemcntl\fR(2) の MC_RESERVE_AS を参照してください。 .RE .RS +4 .TP .ie t \(bu .el o \fBその他:\fR フレームバッファーなどのデバイスを含む、その他のオブジェクトのマッピング。その他のマップされたオブジェクトのマッピング名は表示されません。 .RE .RE .sp .ne 2 .mk .na \fBページサイズ (\fBPgsz\fR)\fR .ad .sp .6 .RS 4n このマッピングのハードウェアアドレス変換に使用されるページサイズ (K バイト単位)。詳細は、\fBmemcntl\fR(2) のマニュアルページを参照してください。 .RE .sp .ne 2 .mk .na \fBスワップ空間 (\fBSwap\fR)\fR .ad .sp .6 .RS 4n このマッピング用に予約されているスワップ空間の量 (K バイト単位)。つまり、コマンド \fBswap\fR \fB-s\fR で表示される予約可能スワップ空間の合計使用可能プールから差し引かれるスワップ空間。詳細は、\fBswap\fR(1M) のマニュアルページを参照してください。 .RE .SH 使用例 .LP \fB例 1 \fRプロセスマッピングの表示 .sp .LP デフォルトでは、\fBpmap\fR はターゲットプロセスのアドレス空間内のマッピングごとに 1 行を表示します。次の例では、一般的な Bourne シェルのアドレス空間を表示します。 .sp .in +2 .nf 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 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 1864 .fi .in -2 .sp .LP \fB例 2 \fRメモリー割り当てとマッピングタイプの表示 .sp .LP \fB-x\fR オプションを使用すると、マッピングごとにメモリー割り当てとマッピングタイプに関する情報を表示できます。常駐メモリー、非共有匿名メモリー、およびロックされたメモリーの量がマッピングごとに表示されます。 .sp .in +2 .nf 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 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 1056 1016 56 - .fi .in -2 .sp .sp .LP 各マッピングの常駐メモリーと匿名メモリーの数字を使用することで、プロセスの各追加インスタンスによって使用される増分メモリーの量を見積もることができます。 .sp .LP 前述の例では、Bourne シェルには 1016K バイトの常駐メモリーがあります。ただし、シェルによって使用される大量の物理メモリーは、シェルのほかのインスタンスと共有されます。シェルの別の同一インスタンスは、可能であればほかのシェルと物理メモリーを共有し、非共有部分には匿名メモリーを割り当てます。前述の例では、2 つめ以降の各 Bourne シェルは約 56K バイトの追加物理メモリーを使用します。 .sp .LP 異なるマッピングタイプを含むプロセスの出力形式を、より複雑な例で示します。この例では、マッピングは次のとおりです。 .sp .in +2 .nf 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 .fi .in -2 .sp .sp .in +2 .nf 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 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 50456 42256 18888 16384 .fi .in -2 .sp .LP \fB例 3 \fRページサイズ情報の表示 .sp .LP \fB-s\fR オプションを使用すると、アドレス空間の各部分のハードウェア変換ページサイズを表示できます。(Solaris の複数ページサイズのサポートについては、\fBmemcntl\fR(2) を参照してください。) .sp .LP 次の例では、マッピングの大部分が 8K バイトのページサイズを使用していますが、ヒープは 4M バイトのページサイズを使用していることがわかります。 .sp .LP 同じページサイズの常駐ページの非連続領域は、別々のマッピングとして報告されます。次の例では、\fBlibc.so\fR テキストの一部しか常駐していないため、\fBlibc.so\fR ライブラリは複数の別々のマッピングとして報告されます。 .sp .in +2 .nf 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 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 50456 42256 18888 16384 .fi .in -2 .sp .LP \fB例 4 \fRスワップ予約の表示 .sp .LP \fB-S\fR オプションを使用すると、プロセスのスワップ予約の内容を表示できます。予約されたスワップ空間の量がプロセス内のマッピングごとに表示されます。共有マッピングのスワップ予約はシステム全体で 1 度しか行われないため、ゼロとして報告されます。 .sp .in +2 .nf 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 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 50456 23496 .fi .in -2 .sp .sp .LP スワップ予約情報を使用すると、各追加プロセスによって使用される仮想スワップの量を見積もることができます。各プロセスは、大域仮想スワッププールから仮想スワップを消費します。大域スワップ予約は、\fBswap\fR(1M) コマンドの「\fBavail\fR」フィールドによって報告されます。 .LP \fB例 5 \fRマルチスレッドプロセスでのスタックのラベル付け .sp .in +2 .nf 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 ] 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 1384 .fi .in -2 .sp .LP \fB例 6 \fRlgroup メモリーの割り当ての表示 .sp .LP 次の例では、lgroup メモリーの割り当てをマッピングごとに表示します。 .sp .in +2 .nf example$ pmap -L `pgrep nscd` 100095: /usr/sbin/nscd 00010000 8K r-x-- 2 /usr/sbin/nscd 00012000 48K r-x-- 1 /usr/sbin/nscd 0002E000 8K rwx-- 2 /usr/sbin/nscd 00030000 16K rwx-- 2 [ heap ] 00034000 8K rwx-- 1 [ heap ] . . . FD80A000 24K rwx-- 2 [ anon ] FD820000 8K r-x-- 2 /lib/libmd5.so.1 FD840000 16K r-x-- 1 /lib/libmp.so.2 FD860000 8K r-x-- 2 /usr/lib/straddr.so.2 FD872000 8K rwx-- 1 /usr/lib/straddr.so.2 FD97A000 8K rw--R 1 [ stack tid=24 ] FD990000 8K r-x-- 2 /lib/nss_nis.so.1 FD992000 16K r-x-- 1 /lib/nss_nis.so.1 FD9A6000 8K rwx-- 1 /lib/nss_nis.so.1 FD9C0000 8K rwx-- 2 [ anon ] FD9D0000 8K r-x-- 2 /lib/nss_files.so.1 FD9D2000 16K r-x-- 1 /lib/nss_files.so.1 FD9E6000 8K rwx-- 2 /lib/nss_files.so.1 FDAFA000 8K rw--R 2 [ stack tid=23 ] FDBFA000 8K rw--R 1 [ stack tid=22 ] FDCFA000 8K rw--R 1 [ stack tid=21 ] FDDFA000 8K rw--R 1 [ stack tid=20 ] . . . FEFFA000 8K rw--R 1 [ stack tid=2 ] FF000000 8K rwx-- 2 [ anon ] FF004000 16K rwx-- 1 [ anon ] FF00A000 16K rwx-- 1 [ anon ] . . . FF3EE000 8K rwx-- 2 /lib/ld.so.1 FFBFE000 8K rw--- 2 [ stack ] total 2968K .fi .in -2 .sp .SH 終了ステータス .sp .LP 次の終了ステータスが返されます。 .sp .ne 2 .mk .na \fB\fB0\fR\fR .ad .RS 12n .rt 正常終了。 .RE .sp .ne 2 .mk .na \fB0 以外\fR .ad .RS 12n .rt エラーが発生しました。 .RE .SH ファイル .sp .ne 2 .mk .na \fB\fB/proc/*\fR\fR .ad .RS 19n .rt プロセスファイル .RE .sp .ne 2 .mk .na \fB\fB/usr/proc/lib/*\fR\fR .ad .RS 19n .rt \fBproc\fR ツールサポートファイル .RE .SH 属性 .sp .LP 属性についての詳細は、マニュアルページの \fBattributes\fR(5) を参照してください。 .sp .sp .TS tab() box; cw(2.75i) |cw(2.75i) lw(2.75i) |lw(2.75i) . 属性タイプ属性値 _ 使用条件system/core-os _ インタフェースの安定性下記を参照。 .TE .sp .LP コマンドの構文は「確実」です。\fB-L\fR オプションおよび出力形式は「不確実」です。 .SH 関連項目 .sp .LP \fBldd\fR(1)、\fBlgrpinfo\fR(1)、\fBmadv.so.1\fR(1)、\fBmdb\fR(1)、\fBplgrp\fR(1)、\fBpmadvise\fR(1)、\fBproc\fR(1)、\fBps\fR(1)、\fBcoreadm\fR(1M)、\fBprstat\fR(1M)、\fBswap\fR(1M)、\fBshmget_osm\fR(2)、\fBmmap\fR(2)、\fBmemcntl\fR(2)、\fBmeminfo\fR(2)、\fBshmop\fR(2)、\fBdlopen\fR(3C)、\fBproc\fR(4)、\fBattributes\fR(5)