マニュアルページ er_print.1
名前
er_print - 1 つまたは複数のパフォーマンス実験ファイルか ら、
ASCII レポートを出力します。
形式
er_print [ - | -script script | -command | -V ] experiment-list
機能説明
er_print は、パフォーマンスアナライザがサポートするさまざ ま
な 表 示 を プレーンテキストのバージョンで出力するユーティリ
ティーです。出力は、標準出力で表示されます。実験ファイルは、
collect コマンドまたは dbx collector コマンドを使用して生成
されます。experiment-list には、実験の名前または実験グループ
の名前を含めることができます。実験グループは、グループ中の実
験の名前を含むファイルによって定義されます。子孫のプロセスの
実 験 ファ イルは、明示的に参照するか、collect(1) マニュアル
ページで説明する方法で子孫のプロセスの実験グループを構築して
読み取ることができます。
収集されたデータに基づいて、関数、呼び出し元と呼び出 し 先、
ソースファイル、および逆アセンブルリストについて、さまざまな
パフォーマンスのメトリックが計算されます。収集されるデータお
よ び 生 成されるメトリックについては、collect(1) マニュアル
ページを参照してください。グラフィカルな表示に つ い て は、
analyzer(1) マニュアルページを参照してください。
オプション
オプション 意味
- 入力端末から er_print コマンドを読み取る対話
型モードに移行。
-script script 1 行につき 1 つのコマンドを 含 む ファ イ ル
script か ら er_print コマンドを読み取りま
す。
-command 指定されたコマンドを処理します。
-V バージョン情報を表示して終了します。
オプションは表示された順に処理されます。オプションは反復でき
ます。スクリプト、- 引数、および明示的なコマンドは、任意の順
序で混合できます。コマンド引数とスクリプト引数が指定されない
場 合、er_print は対話型モードに入り、入力端末からコマンドの
読み取りを行います。入力端末からの入力は、quit コマンドに よ
り終了します。
\ で終了している行の \ は削除され、次の行の内容が付加され た
あとに行の内容が解析されます。メモリーによる制約があることを
除けば、使用できる継続行の数に制限はありません。コマンド行、
ス クリプト、.er.rc ファイルのどれでも、空白を含む引数は二重
引用符 (") で囲む必要があります。
コマンドの処理で発生したエラーまたは警告メッセージは、各コマ
ンドの処理のたびに書き込まれます。この処理に関する統計要約情
報は、procstats コマンドを使って出力できます。
コマンド
er_print ユーティリティーが受け付けるコマンドは次のとおり で
す。コマンドは、コマンド名を特定できる範囲で省略可能です。
関数リストを制御するコマンド
functions
現在のメトリックのセットで、関数リストを出力します。 関
数 リ ス トには、object_select コマンドによって非表示に
なっているロードオブジェクトも含まれます。
metrics metric_spec
関数リストメトリック (ソース、逆アセンブリ、行、PC にも
同 じ メトリックが使用される) を設定します。metric_spec
は、メトリックキーワードをコロンで区切ったリストで す。
動 的メトリック、すなわち、測定データに基づくメトリック
の場合、キーワードは、<flavor><visibility><metric-name>
の 形式です。静的メトリック、すなわち、実験内のロードオ
ブジェクトの静的プロパティー(名前、アドレス、サイズ) に
基 づ くメトリックの場合は、[<visibility>]<metric-name>
の形式で、<visibility> の設定は省略可能です。
<flavor> は、包括的を表す "i" または排他的を表す "e" を
指定できます。"ie" や "ei" などの組み合わせは、拡張され
ま す。 た と え ば、 "ie<visibility><metric-name>" は
"i<visibility><metric-name>:e<visibility><metric-name>"
に拡張されます。
<visibility> は "." (メトリックを時間として表示)、"%" (
割 合として表示) および "+" (数として表示) と組み合わせ
ることができます。メトリックを時間または数としてのみ 表
示できる場合、"." および "+" は同じ意味になります。ハー
ドウェアカウンタプロファイリング実験およびサイクル数 を
カ ウ ン ト す るカウンタの場合、通常、メトリックは時間
(".") として表示され、その <visibility> フィー ル ド で
は、 "+" を使用し、数として表示できます。時間、割合、数
の出現順は固定で、<visibility> 設定内の文字の順序の影響
を 受 け ません。静的メトリックの場合、"+"、"."、および
"%" はすべて同じ意味になります。
<visibility> はまた、"!" (メトリックの無効を意味す る )
と 指定することもできます。通常、これは使用されません。
使用するとすれば、dmetrics コマンド (q.v.) で、各種メト
リッ クの内蔵 visibility デフォルト値を無効にするデフォ
ルトメトリック設定する場合です。metric_spec 内に同じ メ
ト リックが複数回出現することは許可されません。複数回出
現した場合は、エラーとして報告されます。
メトリックの「名前」がリストにない場合は、リストに付 加
さ れ ま す。 ロー ド さ れた実験から使用可能なすべての
<metric-name> 値のリストは、metric_list コマンドを使 用
し て 取 得 で きます。メトリックの詳細については、col-
lect(1) マニュアルページを参照してください。
下記の default-setting コマンドで説明しているように、デ
フォルトでは、.er.rc ファイルから処理された dmetrics コ
マンドに基づくメトリック設定が使用されます。metrics コ
マ ンドで明示的に metric_spec を default に設定すると、
記録されたデータに適切なデフォルト設定が復元されま す。
メ トリックをリセットすると、デフォルトのソートメトリッ
クが新しいリストに設定されます。metric_spec が省略さ れ
た場合は、現在のメトリック設定が表示されます。
関数リスト (etc.) に対するメトリックの設定に加えて、 呼
び 出し元-呼び出し先の場合は cmetrics、データ派生出力の
場合は data_metrics を 設 定 し、 indxobj_metrics は
metrics 設定に応じて設定します。詳細は、これらのコマン
ドの説明を参照してください。
metrics コマンドに誤りがあるか、現在のデータに対応す る
メ トリックが指定にない場合は、警告付きでコマンドは無視
され、前回設定が有効になります。
sort metric_spec
指定されたメトリックで関数リス ト を ソー ト し ま す。
metric_spec については、metrics で説明しています。前に
"-" 符号を付けることによって、逆順ソートを指定 で き ま
す。例:
sort i.user
これは、包括的ユーザー時間でのソートを意味します。メ ト
リッ ク名中の <visibility> は、ソート順に影響しません。
metric_spec に複数のメトリックが指定された場合は、最 初
に 可視のメトリックが使用されます。指定されたメトリック
に可視のものがない場合、コマンドは無視されます。
下記の default-setting コマンドで説明しているように、デ
フォルトでは、.er.rc ファイルから処理された dsosrt コマ
ンドに基づくメトリックソート設定が使用されます。sort コ
マ ンドで明示的に metric_spec として default が指定され
た場合は、デフォルト設定が使用されます。
metric_spec が省略されると、現在のソートメトリックが 出
力されます。
fsummary
関数リスト内のそれぞれの関数について、現在のソートメ ト
リッ ク で 指 定 さ れ る順序で概要パネルを記述します。
object_select コマンドで非表示になっている関数を持つ す
べてのロードオブジェクトを含まれます。
fsingle function_name [N | ADDR]
指定された関数について概要パネルを出力します。関数名 が
あ いまいな場合には、任意指定のパラメータが必要です。詳
細については、source コマンドの説明を参照してください。
呼び出し元と呼び出し先のリストを制御するコマンド
callers-callees
最新の cmetrics 指定を使用して、関数リストソー ト メ ト
リッ ク (sort) で指定される順序で、それぞれの関数につい
て callers-callees パネルを記述します。caller-callee の
各 レポートでは、呼び出し元と呼び出し先が、呼び出し元と
呼び出し先ソートメトリック (csort) でソートされます。
cmetrics metric_spec
呼び出し元と呼び出し先メ ト リッ ク を 設 定 し ま す。
metric_spec は、属性の場合は <flavor> "a" を追加して、
metrics セクションで定義されます。
デフォルトでは、関数リストメトリックが変更され る た び
に、 呼び出し元と呼び出し先メトリックをそれらメトリック
に合わせるよう設定されます。呼び出し元と呼び出し先属 性
メ トリックは、対応する排他的および包括的メトリックの前
に、それら 2 つの <visibility> 設定の論理和に対応 す る
<visibility> を付けて挿入されます。呼び出し元と呼び出し
先メトリックには、静的メトリックの設定がコピー さ れ ま
す。 メトリックの「名前」がリストにない場合は、リストに
付加されます。ロードされた実験に使用 可 能 な <metric-
name> 値の一覧は、cmetric_list コマンドを使って取得でき
ます。
metric_spec が省略された場合は、現在の呼び出し元と呼 び
出し先メトリックの設定が表示されます。cmetrics コマンド
に誤りがある場合は、警告付きで無視され、前回の設定が 有
効になります。
csingle function_name [N | ADDR]
指定された関数について呼び出し元と呼び出し先のメト リッ
ク パネルを出力します。関数名があいまいな場合には、任意
指定のパラメータが必要です。詳細については、source コマ
ンドの説明を参照してください。
csort metric_spec
各関数に関する callers-callees レポート内で、指定のメト
リッ ク に より、呼び出し元と呼び出し先をソートします。
csort メトリックは、属性メトリックか静的メトリックで あ
る 必要があります。複数のメトリックが指定された場合は、
最初に一致する可視のメトリックでソートされます。
明示的またはデフォルトでメトリックが設定されるたび に、
関 数メトリックに基づく呼び出し元と呼び出し先ソートメト
リックが設定されます。包括的または排他的のどちらも、 動
的 メトリックでのソートの場合は、対応する属性メトリック
でソートされます。静的メトリックでのソートの場合は、 そ
のメトリックでソートされます。
metric-spec が省略されると、現在の呼び出し元と呼び出 し
先のソートメトリック設定が出力されます。
リークリストと割り当てリストを制御するコマンド
leaks
サイズによりソートされるリークのリストをそれぞれの呼 び
出 しスタックとともに出力します。リークリスト内のエント
リは、共通呼び出しスタックにより収集されます。
allocs
サイズによりソートされる割り当てのリストをそれぞれの 呼
び 出しスタックとともに出力します。割り当てリスト内のエ
ントリは、共通呼び出しスタックにより収集されます。
ソースと逆アセンブリリストを制御するコマンド
pcs PC (Program Counter) とそのメトリックのリストを、現在の
ソー トメトリックで指定される順序で出力します。リストに
は、object_select コマンドによって関数が非表示になっ て
い るロードオブジェクトのメトリックを表示する行も含まれ
ます。
psummary
PC リスト内のそれぞれの PC について、現在のソート メ ト
リッ クで指定される順序で概要メトリックパネルを記述しま
す。
lines
ソース行とそのメトリックのリストを、現在のソー ト メ ト
リッ クで指定される順序で出力します。ソース行とそのメト
リックのリストを、現在のソートメトリックで指定される 順
序 で出力します。リストには、行番号情報を持たない関数や
ソースファイルが不明な関数のメトリックを表示 す る 行、
object_select コマンドによって関数が非表示になっている
ロードオブジェクトのメトリックを表示する行も含 ま れ ま
す。 .TP lsummary ソース行リスト内のそれぞれの行につい
て、現在のソートメトリックで指定される順序で概 要 メ ト
リックパネルを記述します。
source { filename | function_name } [N | ADDR]
指定されたオブジェクトファイル、または指定された関数 を
含 むオブジェクトファイルの注釈付きソースを記述します。
関数名が C++ 関数か Java メソッドの名前の場合は、復号化
名 (短い形式または長い形式のどちらも可) または符号化名
のどちらでも使用できます。復号化名に空白文字が含まれ る
場 合は、二重引用符で囲んでください。ファイル名または関
数名があいまいな場合は、オプションパラメータの N または
ADDR が必要です。N の形式が使用された場合は、1 から始ま
る番号を使用して Nth の候補が選択されます。複数の可能性
が あ り、かつ指定された N が選択可能な範囲内にない場合
は、エラーが報告されます。可能性が 1 つしかない場合、そ
うしたエラーは無視されます。
ADDR の形式を使用する場合は、@segment-number:address と記 述
し ま す。 segment-number:address 値には、関数のアドレスメト
リックとして表示される値をそのまま指定してください。
指定子なしであいまいな名前だけ指定された場合は、注釈付 き の
ソースではなく、選択肢のリストが表示されます。各リスト項目に
は、N に使用可能な番号と、関数またはファイルを参照しているオ
ブジェクトモジュールの名前、あいまいな関数の場合は、関数名が
含まれます。
どの関数でも、デフォルトのソースコンテキストは、その関数の最
初の命令を含むものがソースファイルとして定義されます。通常、
これは、その関数を含むオブジェクトモジュールを生成するために
コ ン パイルされたソースファイルになります。最初の命令の直後
に、関数のインデックス行を追加します。インデックス行は、下記
に 示 すように鉤括弧内に赤いイタリックのテキストで表示されま
す。
<Function: f_name>
代替のソースコンテキストは、関数内に含まれる命令を持つほかの
ファイルから構成されます。このコンテキストには、インクルード
ファイルから取り込まれた命令や、指定された関数にインライン化
された関数から取り込まれた命令などが含まれます。代替ソースコ
ンテキストが存在する場合、デフォルトのソースコンテキストの先
頭には、次の形式で、代替ソースコンテキストがある場所を示す拡
張インデックス行のリストが含まれます。
<Function: f, instructions from source file src.h>
The function name may also be specified as function`file`,
where file is used to specify an alternate source context
for the function.
注: コマンド行から er_print を実行するときに -source 引数 を
使用する場合は、ファイル引用符の前にエスケープ文字として円記
号を付ける必要があり ま す。 言 い 替 え れ ば、 関 数 名 は
function\`file\` の形式で記述します。 er_print が対話モード
のとき、円記号は必須ではなく、使用すべきではありません。
通常、デフォルトのソースコンテキストが使用されると、 ソー ス
ファイルにあるすべての関数に対するメトリックが表示されます。
代替ソースコンテキストとしてソースファイルが明示的に使用され
た場合は、その指定された関数のみのメトリックが表示されます。
コンパイラのコメントが選択されている場合、コメントはソースリ
ストのソース行に挿入されます。ユーザーが注意すべき行を見つけ
易いよう、メトリックがその最大値に対するしきい値 (百分率) に
等しいか、しきい値を超えている行の先頭に、文字列 "##" を付加
できます。表示するしきい値およびコメントのクラスは、ソースし
き い値オプションの sthresh と、ソースのコンパイラのコメント
に対する設定のオプションの scc を使って制御します。
setpath コマンドで指定されるパスを使ってファイルを検索 し ま
す。ファイルが見つからない場合は、実行可能ファイルに記録され
た絶対パス名で検索します。ソースを移動したか、実験ファイルが
異なるファイルシステムに記録された場合は、現在のディレクトリ
から実際のソースのある場所へシンボリックリンクを設定して、注
釈付きのソースを参照するか、ソースコードをコピーしてオブジェ
クトを実験ファイルにロードすることができます。
src { filename | function_name } [N | ADDR]
source と同じです。
disasm { filename | function_name } [N | ADDR]
特定のオブジェクトファイル、または特定の関数を含むオブジェク
トファイルの注釈付き逆アセンブリを出力します。あいまいな表現
は、source コマンドと同じ方法で解決されます。
ユーザーが注意すべき行を見つけ易いよう、行のメトリック値がそ
の最大値に対するしきい値 (百分率) に等しいか、しきい値を超え
ている場合は、その行の先頭に、文字列 "##" を付加できます。し
き い値は dthresh コマンドによって設定されます。表示されるコ
メントのクラスは、dcc コマンドにより設定されます。
source コマンドで説明したように、指定逆アセンブリに対応す る
ソースファイルを検索し、ソースおよびインデックス行と逆アセン
ブリに交互に表示します。関数に代替ソースコンテキストのコード
が 含 まれる場合は、代替コンテキストをインデックス行が挿入さ
れ、そのあとに、コンパイラのコメントなしで raw の逆アセン ブ
リが続きます。ソースファイルが存在しない場合は、逆アセンブリ
は、ソースやコンパイラのコメントなしで表示されます。
scc com_spec
注釈付きソースでどのコンパイラのコメントのクラスが表示できる
か を指定します。com_spec はコロンで区切ったクラスのリストで
す。各クラスは、特定のメッセージの型を参照します。使用できる
クラスは、次のとおりです。
b[asic] - すべてのクラスから基本メッセージを表示します
v[ersion] - バージョンメッセージを表示します
w[arn] - 警告メッセージを表示します
pa[rallel] - 並列化メッセージを表示します
q[uery] - コンパイラからの質問を表示します
l[oop] - ループの変形メッセージを表示します
pi[pe] - パイプライン化メッセージを表示します
i[nline] - インライン化メッセージを表示します
m[emops] - メモリー操作についてのメッセージを表示します
f[e] - フロントエンドのメッセージを表示します
c[g] - コードジェネレータのメッセージを表示します
all - すべてのメッセージを表示します
none - メッセージを表示しません
"all" および "none" のクラスは、ほかのクラスとの併用はできま
せん。
互換性のために、重要な行にフラグが付けられるし き い 値 を、
"all" と "none" も含め任意のクラスを使用して、リストに含める
ことができます。
t[hreshold]=nn
メトリックの値が、ファイル中のいずれかの行にあるそのメトリッ
クの最大値の nn パーセントより大きい場合は、その行を重要とみ
なしてフラグを付けます。nn のデフォルト値は、75 です。
たとえば、
scc l:pi:t=50
は、ループの変形メッセージおよびパイプライン化メッセージの表
示を意味し、しきい値を 50% に設定します。
scc コマンドが指定されなかった場合、デフォルトの設定は次のよ
うになります。
scc all
com_spec が指定されなかった場合、コンパイラのコメントは出 力
されません。scc コマンドは、通常は .er.rc ファイルのみに使用
されます。
sthresh value
ソース内の重要な行にフラグが付けられるしきい値を設定します。
行のメトリックの値が、ファイル中のいずれかの行にあるそのメト
リックの最大値の value パーセントより大きい場合は、その行 そ
の 行 を重要とみなしてフラグを付けます。value のデフォルト値
は、75 です。
dcc com_spec
注釈付き逆アセンブリでどのコンパイラのコメントのクラスが表示
されるか指定します。このコマンドで指定する com_spec には、い
ずれかの scc クラスと次の追加クラスを含めることができます。
h[ex] - 各命令の 16 進数表現を表示します
noh[ex] - 各命令の 16 進数表現を表示しません
s[rc] - ソースを逆アセンブリでインタリーブしま す ( デ
フォルト)
as[rc] - 注釈付きソースをソース行メトリックによって逆ア
センブリでインタリーブします
nos[rc] - ソースを逆アセンブリでインタリーブしません
dcc コマンドが指定されなかった場合、デフォルトの設定は次のよ
うになります。
dcc all:src
このコマンドは通常は .er.rc ファイルのみに使用されます。
cc com_spec
ソースおよび逆アセンブリ両方に対するコンパイラのコメントを指
定します
dthresh value
逆アセンブリで重要な行にフラグが付けられるしきい値を設定しま
す。行のメトリックの値が、ファイル中のいずれかの行にあるその
メトリックの最大値の value パーセントより大きい場合は、そ の
行その行を重要とみなしてフラグを付けます。value のデフォルト
値は、75 です。
setpath path_list
ソースファイル、オブジェクトファイル、etc. ファイルの検索 に
使用するパスを設定します。path_list には、ディレクトリをコロ
ンで区切って指定します。コロンを含むディレクトリを指定する場
合は、ディレクトリ中のコロンにバックスラッシュを付ける必要が
あります。特別なディレクトリ名である $expts を指定すると、現
在 の 実験をロードされた順番に指定したことになります。$expts
は、$ 1 文字で省略指定することができます。
デフォルトの設定は、$expts:. です。検索を行なってもファイ ル
が見つからない場合は、編集済みのフルパス名が現在のパス設定と
して使用されます。
引数なしの setpath は、現在のパスを表示します。
addpath path_list
現在の setpath の設定に path_list を追加します。
pathmap old_prefix new_prefix
addpath または setpath で設定された path_list を使用してファ
イルが見つからない可能性がある場合は、1 つまたは複数のパス再
マップを指定できます。old_prefix から始まるソースファイ ル、
オブジェクトファイル、または共有オブジェクトのパス名の接頭辞
が、new_prefix に置き換えられ、生成された新しいパスを使用 し
て ファイルが検索されます。複数の pathmap コマンドを指定する
ことが可能で、その場合は、ファイルが見つかるまで 1 つ 1 つ試
されます。
データ領域リストを制御するコマンド
データ領域関係のコマンドは、積極的なバックトラッキングを指定
したハードウェアカウンタの実験と、-xhwcprof を付けてコンパイ
ルされたファイル内のオブジェクトにのみ適用できます (SPARC[R]
プラットフォームで C/C++ にのみ使用可能)。詳細は、コンパイラ
のマニュアルを参照してください。
data_objects
データオブジェクトとそのメトリックのリストを表 示 し ま
す。
data_single
name [N]
指定されたデータオブジェクトについて概要メトリックパ ネ
ル を出力します。オブジェクト名があいまいな場合には、任
意指定のパラメータ N が必要です。
data_layout
データ派生メトリックデータを持つすべてのプログラム デー
タ オブジェクトの注釈付きのデータオブジェクトレイアウト
を、構造を 1つの全体として現在のデータソートメトリッ ク
値 でソートして書き出します。集合体データオブジェクトご
とに、そのオブジェクトに起因する合計メトリックが表示 さ
れ、 そ の あとに、そのオブジェクトのすべての要素がオフ
セット順に表示されます。各要素には、そのメトリック と、
32 バイトブロックを基準にしたそのサイズと位置を示す情報
が表示されます。
data_metrics metric_spec
呼び出し元と呼び出し先メ ト リッ ク を 設 定 し ま す。
metric_spec は、metrics セクションで定義されます。
デフォルトでは、関数リストメトリックが変更され る た び
に、 データ派生メトリックをそれらメトリックに合わせるよ
う設定されます。データ派生フレーバを持ち、可視の任意 の
排 他 的 または包括的メトリックに対応するデータ派生メト
リックが、それら 2 つの <visibility> 設定の論理和に対応
す る <visibility> を付けて設定されます。データ派生メト
リックに静的メトリック設定がコピーします。メトリック の
「名前」がリストにない場合は、リストに付加されます。
metric_spec が省略された場合は、現在のデータ派 生 メ ト
リッ クの設定が出力されます。ロードされた実験に使用可能
な <metric-name> 値の一覧は、cmetric_list コマ ン ド を
使って取得できます。
metric_spec に誤りがある場合は、無視され、データ派生 メ
トリックは変更されません。
data_sort
データオブジェクトのソートメトリックを設定します。動 的
メ トリックには接頭辞 "d." が必要ですが、静的メトリック
では省略できます。data_sort メトリックは、データ派生 メ
ト リックか静的メトリックである必要があります。複数のメ
トリックが指定された場合は、最初に一致する可視 の メ ト
リックでソートされます。
明示的またはデフォルトでメトリックが設定されるたび に、
関 数メトリックに基づくデータ派生ソートメトリックが設定
されます。包括的または排他的のどちらも、対応するデー タ
派 生フレーバを持つ動的メトリックでのソートの場合は、対
応するデータ派生メトリックでソートされます。データ派 生
フ レーバを持たない包括的または排他的メトリックでのソー
トの場合は、最初の可視のデータ派生メトリックでソート さ
れ ます。静的メトリックでのソートの場合は、そのメトリッ
クでソートされます。
メモリーオブジェクトリストを制御するコマンド
メモリーオブジェクト関係のコマンドは、積極的なバックトラッキ
ングを指定したハードウェアカウンタの実験と、-xhwcprof を付け
てコンパイルされたファイル内のオブジェクトにのみ適用できます
(SPARC[R] プラットフォームで C/C++ にのみ使用可能)。詳細は、
コンパイラのマニュアルを参照してください。
メモリーオブジェクトは、cache-lines、pages、memory-banks な
どの、メモリーサブシステム内のコンポーネントです。オブジェク
トは、記録されている仮想か物理、またはその両方のアドレスから
算出されたインデックスから特定されます。仮想および物理ページ
用に、8KB、64KB、512KB、および 4MB のサイズでメモ リー オ ブ
ジェクトが事前定義されています。その他のメモリーオブジェクト
も、mobj_define コマンドを使って定義できます。
次のコマンドは、メモリーオブジェクトリストを制御します。
memobj mobj_type
現在のメトリックとともに指定された種類のメモ リー オ ブ
ジェ クトのリストを書き出します。使用されるメトリックお
よびソートは、データ領域リ ス ト と 同 じ で す。 名 前
mobj_type を 直 接、コマンドとして使用することもできま
す。
mobj_list
memobj コマンドで mobj_type に使用される、既知の種類 の
メモリーオブジェクトリストを書き出します。
mobj_define mobj_type index_exp
index_exp で指定されたオブジェクトに対する VA/PA マッピ
ン グを使って新しい種類のメモリーオブジェクトを定義しま
す。式の構文は、このあとの「式の構文」で説明 し ま す。
mobj_type が定義されていてはいけません。また、既存のコ
マンドやインデックスオブジェクト型に一致してはいけま せ
ん (あとの記述を参照)。この名前は大文字と小文字が区別さ
れません。英数字と '_' だけ使用し、先頭文字は英字にしま
す。 index_exp は正しい構文である必要があります。正しく
ない場合は、エラーが返され、定義 は 無 視 さ れ ま す。
index_exp に空白を含める場合は、二重引用符 (") で囲む必
要があります。
<Unknown> メモリーオブジェクトのインデックスは -1 で、
新 し い メ モ リーオブジェクトの定義に使用する式では、
<Unknown> が認識できるようにします。たとえば VADDR オブ
ジェクトの場合、式は次の形式にします。
VADDR>255?<expression>:-1
PADDR オブジェクトの場合は、次の形式にします。
PADDR>0?<expression>:-1
インデックスオブジェクトリストを制御するコマンド
インデックスオブジェクトコマンドはあらゆる実験に適用で き ま
す。インデックスオブジェクトは、パケットのヘッダーから算出さ
れる式でインデックスを付けることが可能なオブジェクトのクラス
で す。スレッド、CPU、標本、秒用のインデックスオブジェクトが
事前に定義されています。それ以外にも、indxobj_define コマ ン
ドを使用して独自のインデックスオブジェクトを定義できます。
次のコマンドはインデックスオブジェクトリストを制御します。
indxobj indxobj_type
現在のインデックスオブジェクトメトリックを使用して、 指
定 された型のインデックスオブジェクトのリストを生成しま
す。使用されるメトリックおよびソートは関数リストのよ う
に な り ま す が、 排 他 メ ト リッ クのみ含まれます。
indxobj_type という名前は、直接、コマンドとして使用でき
ます。
indxobj_list
indxobj コマンドの indxobj_type に使用された既知の型 の
インデックスオブジェクトのリストを生成します。
indxobj_define indxobj_type index_exp
パケットと index_exp で指定されたオブジェクトのマッピン
グ を使用して新しい型のインデックスオブジェクトを定義し
ます。式の構文は、後述の「式の文法」で 説 明 し ま す。
indxobj_type が定義されていてはいけません。また、既存の
コマンドやメモリーオブジェクト型に一致してはいけませ ん
( 前述の説明を参照)。この名前は大文字と小文字が区別され
ません。英数字と '_' だけ使用し、先頭文字は英字に し ま
す。 index_exp は構文的に誤りがあってはいけません。誤り
がある場合は、エラーが返され、定義は無 視 さ れ ま す。
index_exp に空白文字が含まれる場合は、二重引用符で囲ん
でください。
indxobj_metrics metric_spec
インデックスオブジェクトのメトリックを 設 定 し ま す。
metric_spec は metrics セクションで定義します。ただし、
<flavor> "e" (排他的を意味する) は動的メトリックに使 用
できます。
デフォルトでは、インデックスオブジェクトメトリック は、
変 更があるたびに関数リストメトリックに応じて設定されま
す。表示する任意の排他的または包括的メトリックに対応 す
る 排 他 的インデックスオブジェクトメトリックを設定しま
す。このときの <visibility> は、これら 2 つ に 対 す る
<visibility> 設定の論理和に対応します。静的メトリック設
定をインデックスオブジェクトメトリックにコピーしま す。
メ トリックの「名前」がリストにない場合は、リストに付加
されます。
metric_spec が省略された場合は、現在のインデックスオ ブ
ジェ クトメトリック設定が表示されます。ロードされた実験
に使用可能な <metric-name> 値の一覧は、cmetric_list コ
マンドを使って取得できます。
metric_spec コマンドに誤りがある場合は、無視され、イ ン
デックスオブジェクトメトリックは変更されません。
indxobj_sort
インデックスオブジェクトに対するソートメトリックを設 定
し ます。動的メトリックには接頭辞 "e." が必要ですが、静
的メトリックの場合は省略できます。data_sort メトリッ ク
に 指定できるのは、排他メトリックか静的メトリックのいず
れかです。複数のメトリックが指定された場合は、最初に 一
致する表示メトリックでソートされます。
明示的またはデフォルトを問わず、メトリックが設定され る
た びに、インデックスオブジェクトのソートメトリックが関
数メトリックに基づいて設定されます。ソートが包括また は
排 他いずれかの動的メトリックを基準にする場合は、対応す
る排他的メトリックでソートされます。ソートが静 的 メ ト
リッ クを基準にする場合は、そのメトリックでソートされま
す。
スレッドアナライザのレポートを制御するコマンド
races
実験で検出されたデータ競合群に関するレポートを生成し ま
す。 データ競合レポートは、データ競合検出データが実験に
含まれている場合にのみ生成できます。
rdetail [ race_id ]
指定したデータ競合に関する詳細情報を生成します。race_id
に all と指定された場合は、すべてのデータ競合に関する詳
細情報を生成されます。データ競合レポートは、データ競 合
検 出データがある実験に含まれている場合にのみ生成できま
す。
rsummary [ race_id ]
rdetail と同じです。
deadlocks
実験で検出されたデッドロックのレポートを生成 し ま す。
デッ ドロックのレポートは、デッドロック検出データが実験
に含まれている場合にのみ生成できます。
ddetail [ deadlock_id ]
指定したデッドロックに関する詳細情報を 生 成 し ま す。
deadlock_id に all と指定された場合は、すべてのデッド
ロックに関する詳細情報が生成されます。デッドロックの レ
ポー トは、デッドロック検出データが実験に含まれている場
合にのみ生成できます。
dsummary [ deadlock_id ]
ddetail と同じです。
実験、標本、スレッド、および LWP をリストするコマンド
exp_list
ロードされている実験のリストを表示します。各リ ス ト に
は、 標 本 やスレッド、または LWPの選択に使用されるイン
デックスと、詳細なフィルタ処理に使用できる PID とともに
表示されます。
sample_list
実験中に処理された標本のリストを表示します。
lwp_list
実験中に処理された LWP のリストを表示します。
thread_list
実験中に処理されたスレッドのリストを表示します。
cpu_list
実験中に使用された CPU のリストを表示します。
実験データのフィルタを制御するコマンド
実験データのフィルタを指定する方法は 2 つあります。1 つ は、
フィルタ式を指定する方法。各データレコードについて式が評価さ
れ、レコードを含めるかどうかが判定されます。もう 1 つは、 旧
式のコマンドを使用して、フィルタ対象の実験、標本、スレッド、
CPU、LWP を選択する方法です。
式によるフィルタは、次のコマンドで制御します。
filters filter_exp
filter_exp は、データレコードを含める場合は true、含 め
ない場合は false と評価される式です。
filters コマンドのこの式の構文は、このあとの「式の構文」で説
明 します。式に空白を含める場合は、二重引用符 (") で囲む必要
があります。
フィルタ対象となるデータを表示する実験、標 本、 ス レッ ド、
CPU、LWP を選択する旧式のコマンドは次のとおりです。
sample_select sample_spec
sample_spec は、以下で説明する標本のリストです。
lwp_select lwp_spec
lwp_spec は、以下で説明する LWP のリストです。
thread_select thread_spec
thread_spec は、以下で説明するスレッドのリストです。
cpu_select cpu_spec
cpu_spec は、以下で説明する CPU のリストです。
上記の各リストは、1 つの番号、番号の範囲 (n - m)、番号や範囲
を コンマで区切ったリスト、または明示的な文字列 "all" で指定
します。各リストの前に任意で、同じフォーマットをもつ、コロン
(:) で区切られた実験リストを設定できます。複数のリストは、+
記号で区切って連結できます。また、空白を含んではなりません。
実験リストが含まれていない場合、リストはすべての実験に対して
適用されます。
4 つある選択対象 (スレッド、LWP、CPU、標本 ) に 対 応 し た
select コ マ ンドによって、実験の選択を行います。選択したス
レッド、LWP、CPU、もしくは標本が存在する実験を、実験リストに
指定してください。実験が指定されていない場合には、すべての実
験が選択されます。実験リストに無い実験を対照した選択は無効に
なります。
例:
thread_select 1
すべての実験の中から、スレッド 1 を選択します。
thread_select all:1
すべての実験の中から、スレッド 1 を選択します。
thread_select all:1,3,5
すべての実験の中から、スレッド 1、3、5 を選択します。
thread_select 1,2:all
exp_list にリストされているように、実験 1 と実験 2 か
ら、すべてのスレッドを選択します。
thread_select 1:1+2:2
実験 1 の中からスレッド 1を、実験 2 の中からスレッド 2
を選択します。
ロードオブジェクト関数の展開/収縮を制御するコマンド
object_list
使用可能なロードオブジェクトの状態と名前を示す 2 つの欄
からなるリストを表示します。1 つ目の欄が展開/収縮状態、
2 つ目の欄が名前です。選択状態として、ロードオブジェ ク
ト の関数が関数リストに表示されている場合は 「はい」(展
開している)、表示されていない場合は 「いいえ」(収縮して
い る ) と表示されます。関数リスト内では、収縮している
load-object マップのすべての関数がそのロードオブジェ ク
ト全体を表す 1 つのエントリにマッピングされます。
object_select object1,object2,...
有効なロードオブジェクトのリストを設定します。オブ ジェ
ク トの名前は、フルパス名またはベース名です。その名前が
コンマを含む場合には、二重引用符で囲む必要がありま す。
ロー ドオブジェクトを選択すると、その関数が展開され、ゼ
ロ以外のメトリックを持つすべての関数が関数リストに表 示
さ れます。ロードオブジェクトが選択されていない場合、そ
の関数は収縮され、個々の関数ではなく、そのロー ド オ ブ
ジェクト全体でメトリックを含む 1 つの行だけが表示されま
す。
デフォルトでは、すべてのロードオブジェクトが選択され ま
す。
メトリックをリストするコマンド
metric_list
現在選択した関数リストメトリックと、それらをほかのコ マ
ン ド中でも参照可能な sort などのメトリックやキーワード
名のリストを表示します。メトリックキーワードの書式に つ
い ては、metrics についての項で説明しています。使用可能
なメトリックは、収集されたデータにより異なります。 col-
lect(1) のマニュアルページを参照してください。
cmetric_list
現在選択されている callers-callees メ ト リッ ク と、
callers-callees レポートに関するメトリックとキーワード
名のリストを表示します。metric_list の出力と同じ方法 で
リ ストを表示しますが、さらに属性メトリックが含まれてい
ます。
data_metric_list
現在選択されているデータ派生メトリックと、すべての デー
タ 派生レポートのメトリックおよびキーワード名のリストを
表示します。metric_list 出力と同じ形式で表示さ れ ま す
が、 含まれるのはデータ派生フレーバを持つメトリックと静
的メトリックだけです。
indx_metric_list
現在選択されているインデックスオブジェクトメ ト リッ ク
と、 すべてのインデックスオブジェクトレポートのメトリッ
クおよびキーワード名の一覧を表 示 し ま す。 一 覧 は、
metric_list 出 力 と同じ方法で表示されますが、排他的フ
レーバーを持つメトリックと静的メトリックのみ含 ま れ ま
す。
出力を制御するコマンド
outfile filename
開かれている出力ファイルをすべて閉じて、これ以降の出 力
用 に filename を開きます。 filename を開くときに、既存
の内容を消去します。filename にマイナス記号 (-) が指 定
された場合、出力は stdout に書き込まれます。
filename が一対の負号 (--) の場合、出力は stderr に書き
出されます。
appendfile filename
開いている出力ファイルがある場合はそのファイルを閉 じ、
filename を開きます。以降の出力がこのファイルの最後に負
荷されるよう既存の内容が保持されます。 filename が存 在
しない場合、 appendfile の機能は outfile と同じです。
limit n
レポートの最初の n 個のエントリに出力を制限します。ここ
で、n は符号なしの整数です。
name { long | short | mangled } [:{soname | nosoname }]
long または short 形式の C++ 関数名を使用します。soname
が 指定された場合は、関数名に共有オブジェクト名が付加さ
れます。
viewmode { user | expert | machine }
表示モードを user、expert、または machine のいずれか に
設 定 し ま す。 analyzer プログラムの画面上では user、
expert、machine は、それぞれ「ユー ザー」、 「上 級」、
「マシン」と表示されます。
Java 実験の場合、user モードでは、Java スレッドの Java
呼 び 出 しスタックが表示されますが、ハウスキーピングス
レッドは表示されません。関数リストには、非 Java ス レッ
ド か ら の集計時間を表す <JVM システム> 関数が含まれま
す。JVM ソフトウェアから Java 呼び出しスタックの報告 が
ない場合、時間は関数 <Java 呼び出しスタックが記録されて
いません> と報告されます。Expert モードでは、ユーザーの
Java コードが実行されるときの Java スレッドの Java 呼び
出しスタックと、JVM コードが実行されるときのマシン呼 び
出 しスタックが表示されます。後者は、JVM ソフトウェアか
ら Java 呼び出しスタックの報告がない場合にも表示され ま
す。 非ユーザーJava スレッド (ハウスキーピングスレッド)
については、マシン呼び出しスタックが表 示 さ れ ま す。
Machine モードでは、すべてのスレッドのマシン呼び出しス
タックが表示されます。
OpenMP 実験の場合、user および expert モードは 同 じ で
す。 マスタースレッド呼び出しスタックと調整されたスレー
ブスレッド呼び出しスタックが表示され、OpenMP 実行時環境
で 何らかの処理が行われている場合は、<OMP *> 形式の名前
を持つ特別な関数が追加されます。詳細は、collect(1) のマ
ニュ アルページかパフォーマンスアナライザのマニュアルを
参照してください。Machine モードでは、すべてのスレッ ド
のマシン呼び出しスタックが表示されます。
ほかのすべての実験では、3 つのモードのどれも同じデー タ
を表示します。
その他の情報を出力するコマンド
header [ exp_id ]
指定された実験に関する記述情報を出力します。exp_id は、
experiment_list コマンドでリストされる実験の数値識別子
です。exp_id が all か、または省略された場合は、すべ て
の 実験のヘッダーが記述されます。それぞれのヘッダーに準
じて、エラーまたは警告が出力されます。各実験のヘッ ダー
は、ハイフンで区切られます。
実験ディレクトリに notes という名前のファイルが含まれて
い る場合は、そのファイルの内容がヘッダー情報の先頭に付
加されます。
exp_id は、スクリプトや対話モードではなく、コマンド行か
ら入力する必要があります。
objects
パフォーマンス解析にロードオブジェクトを使用した結果 出
力 されるエラーメッセージや警告メッセージに、ロードオブ
ジェクトを一覧表示します。
overview [ exp_id ]
指定した実験の、各標本のデータも含めた、標本リストを 出
力 します。experiment-id は、experiment_list コマンドで
リストされる実験の数値識別子です。exp_id が all か、 ま
た は 省 略された場合は、すべての実験の概要が記述されま
す。
exp_id は、スクリプトや対話モードではなく、コマンド行か
ら入力する必要があります。
statistics [ exp_id ]
指定した実験の、実行統計データを出力します。データは 現
在 の 標 本 セッ ト で 収 集されたものです。exp_id は、
experiment_list コマンドでリストされる実験の数値識別 子
で す。 exp_id が省略された場合は、その標本による選択に
従って、すべての実験全体の集計値が書き 込 ま れ ま す。
exp_id が all の場合は、各実験で選択された標本の集計値
と統計が書き込まれます。
exp_id は、スクリプトや対話モードではなく、コマンド行か
ら入力する必要があります。
ifreq
命令の実行概要を生成します。命令頻度レポートは、実験 に
カ ウントデータがある場合にのみ生成できます (SPARC シス
テムでのみ使用可能)。
デフォルト設定コマンド
アナライザでの表示ばかりでなく、er_print および er_src ユー
ティ リティーのレポートの多くのデフォルトは、.er.rc という名
前のリソースファイルで設定できま す。 er_print ユー ティ リ
ティーおよびパフォーマンスアナライザは、最初にシステム全体の
.er.rc ファイル、そのあとで、ユーザーのホームディレクトリ に
あ る .er.rc、さらに現在のディレクトリにある .er.rc を処理し
ます (それぞれディレクトリに .er.rc ファイルがある場合)。 各
ファイルから読み取られた指令は、以前に読み取られた指令よりも
優先されます。
注: アナライザ、er_print および er_src ユーティリティー
の デフォルトの設定は、同じ .er.rc ファイルを使用して
行われます。このためアナライザの「データ表示方法の 設
定」 ダイアログで変更を保存するか、エディタを使用して
.er.rc ファイルを編集すると、 er_print ユー ティ リ
ティーの出力もその影響を受けます。
アナライザは、自身が処理したユーザーの .er.rc ファイルの名前
を 付 け て、「エラー/警告ログ」領域にメッセージを書き込みま
す。er_print および er_src ユーティリティーは、それらの ファ
イルの名前を付けて、stderr にメッセージを出力します。
前述したように、これら の ファ イ ル に は、 scc、 sthresh、
dthresh、 setpath、addpath、pathmap、name、mobj_define、およ
び viewmode コマンドを含めることができます。次のコマンドを含
めることもできますが、これらのコマンドは、コマンド行またはス
クリプトには使用できない場合があります。
dmetrics metric_spec
メトリックのデフォルトの順番や可視設定を指定します。 複
数 の dmetrics コマンドが er.rc に指定され、連結されま
す。さまざまなファイルからの dmetrics は、現在ディレ ク
ト リ、ユーザーのホームディレクトリ、システムの順番に連
結されます。
metric_spec については、前述の metrics コマンドの項で説
明していますが、以下が追加されます。
<visibility> は、メトリックのバージョンが不可視であるこ
と を 意味する "!" に設定できます。これにより、ユーザー
は、デフォルトでバージョンを可視に設定しなくても、メ ト
リックの順番を指定することができます。
2 つの汎用メトリック名を指定できます。"hwc" はすべて の
ハー ドウェアカウンタメトリックを意味し、"any" はすべて
のメトリックを意味します。
ロードされた実験から計算されたすべてのメトリックにつ い
て、 すべての dmetrics の連結リストが一致するかどうかが
走査されます。最初の一致したエントリにより、関数リス ト
お よび呼び出し元と呼び出し先のリスト内のメトリックの可
視設定と順番が決定されます。
dsort metric_spec
デフォルトで、関数リストをソートするために使用される メ
ト リックを指定します。ソートメトリックの決定には、実験
ファイルのメトリックに一致する
dsort 指定の最初のメトリックが、次の条件で使用さ れ ま
す。 dsort metric_spec のエントリの <visibility> が "!"
の場合、名前が一致した最初のメトリックが、見えるか見 え
ないかに関わらず、使用されます。<visibility> のその他の
設定が使用された場合、名前が一致した最初の可視メト リッ
ク が使用されます。dmetrics と同様に、さまざまな .er.rc
ファイルからの dsort 指定が、現在ディレクトリ、ユーザー
のホームディレクトリ、システムの順番に連結されます。
en_desc option
option に従って発生実験の読み取りモードを設定し ま す。
option に指定できる値は次のとおりです。
値 意味
on 派生プロセスに関するすべての実験を表示します
off 派生プロセスに関する実験を表示しません
=<regex> 正規表現に一致する系統または実行可能ファイ ル
名 を 持 つ派生プロセスに関する実験を表示しま
す。
en_desc が offに設定され、ロードされている実験に派生 が
ある場合は、er_print からメッセージが返され、パフォーマ
ンスアナライザからポップアップが表示されます。
パフォーマンスアナライザにのみ影響を与えるデフォルト設定コマ ン
ド
tabs tab_spec
アナライザで表示するデフォルトのタブセットを設 定 し ま
す。 タブには、対応するレポートを生成する er_print コマ
ンドによって名前が付けられます。また、timeline は「タイ
ム ライン」タブ、headers は「実験」タブを示します。ロー
ドされている実験内のデータがサポートするタブのみ表示 さ
れます。
rtabs tab_spec
analyzer ではなく、tha コマンドで呼び出されたとき、アナ
ライザに表示するデフォルトのタブセットを設定します
tlmode tl_mode
「タイムライン」タブの表示モードオプションを設 定 し ま
す。 tl_mode には、以下に示すオプションをコロンで区切っ
て指定します。
値 意味
lw[p] LWP のイベントを表示します
t[hread] スレッドのイベントを表示します
c[pu] CPU のイベントを表示します
r[oot] 呼び出しスタックをルートに配置します
le[af] 呼び出しスタックをリーフに配置します
d[epth]=nn
表示可能な呼び出しスタックの最大の深さを設 定
します
lwp、thread、cpu のうちの 2 つを同時に指定することは で
きません。また、root と leaf を同時に指定することはでき
ません。同時に指定すると、最後に指定したオプションが 使
用されます。
tldata tl_data
「タイムライン」タブに表示されるデフォルトのデータの 種
類 を設定します。tl_data には、以下に示す種類をコロンで
区切って指定します。
値 意味
sa[mple] 標本データを表示します
c[lock] 時間プロファイルデータを表示します
hw[c] ハードウェアカウンタプロファイルデータを表 示
します
sy[nctrace]
スレッド同期トレースデータを表示します
mp[itrace]
MPI トレースデータを表示します
he[aptrace]
ヒープトレースデータを表示します
その他のコマンド
mapfile load-object mapfilename
指定されたロードオブジェクトのマップファ イ ル を map-
filename に書き込みます。mapfilename にダッシュ(-) を指
定すると、マップファイルを stdout に書き込みます。関 数
リ ストをソートするように現在設定されているメトリックを
使ってマップファイルを順序付けます。
procstats
データ処理からの累積統計を出力します。
script script
指定されたスクリプト内のコマンドを処理します。
version
er_print の現在のリリースバージョンを表示します。
quit 対話型モードを終了します。このコマンドをスクリプト内 で
使 用すると、スクリプト内のコマンドがそれ以上処理されな
くなります。
help ヘルプ情報を表示します。
# ...
スクリプトまたは .er.rc ファイルで使用されるコメント行
式の構文
フィルタを定義する式や、メモリーオブジェクトインデックスを求
めるための式には、一般的な構文が使用されます。
この構文では、演算子とオペランドの組み合わせで式を指定 し ま
す。フィルタの場合、式が true と評価されると、パケットが含ま
れ、false と評価されると、パケットが除外されます。メモリーオ
ブジェクトの場合、評価結果は、パケットで参照される特定のメモ
リーオブジェクトを定義するインデックスになります。
式のオペランドは、定数か、データレコー ド 内 の フィー ル ド
(THRID、 LWPID、 CPUID、STACK、LEAF、VIRTPC、PHYSPC、VADDR、
PADDR、DOBJ、TSTAMP、SAMPLE、EXPID、PID、またはメモリーオ ブ
ジェクト名) です。
VIRTPC、PHYSPC、VADDR、および PADDR は、ハードウェアカウンタ
ま たは時間プロファイルで "+" が指定された場合にのみゼロ以外
の値になります。また、実際の仮想アドレスを特定できなかった場
合、 VADDR は 256 未満になります。VADDR が特定できなかった
か、または仮想アドレスを物理アドレスにマップできなかっ た 場
合、 PADDR はゼロです。同様に、バックトラックに失敗するか、
バックトラックが要求されない場合、VIRTPC はゼロであり、ま た
VIRTPC がゼロか、VIRTPC を物理アドレスにマップできなかった場
合、PHYSPC はゼロになります。
演算子には、C 表記法の、C の優先順位規則を持つ通常の論理演算
子 と算術演算子 (shift を含む)、要素がセット内にあるかどうか
を判定する演算子 (IN) または要素セットの一部または全部がセッ
ト に 含まれているかどうかを判定する演算子 (それぞれ SOME IN
または IN) などがあります。If-then-else 構文は、C 同様、? お
よ び : 演算子を使って指定します。すべての式が適切に解析され
るようにするには、括弧を使用してください。er_print コマン ド
行では、式を複数行に分割することはできません。スクリプトまた
はコマンド行で、式に空白を含める場合は、二重引用符で囲む必要
があります。
フィルタ式は、パケットを含める場合に true、含めない 場 合 は
false の boolean 値と評価されます。スレッド、TWP、CPU、実験
ID、プロセス PID、標本フィルタは、適切なキーワードと整数の関
係式または IN 演算子とコンマ区切りの整数リストを使用した関係
式に基づきます。
時間フィルタは、TSTAMP と時間の 1 つ以上の関係式で指定 し ま
す。この時間は、処理するパケットがある実験の開始からの経過時
間 (ナノ秒を示す整数値) です。標本の時間は、overview コマ ン
ド か ら 取得できます。overview コマンドの時間は秒単位ですか
ら、時間フィルタ用にナノ秒に変換する必要があります。時間は、
アナライザの「タイムライン」表示から取得することもできます。
関数フィルタは、リーフ関数またはスタック内の任意の関数に基づ
い て 指定することができます。リーフ関数でのフィルタは、LEAF
キーワードと関数の ID (整数値) の関係式、または IN 演算子 と
FNAME("<regex>") 構文 (<regex> は regex(5) のマニュアルペー
ジに説明されているような正規表現) を使用した関係式で指定しま
す。 name の現在の設定で与えられるように、関数の名前全体が一
致する必要があります。
呼び出し内の任 意 の 関 数 に 基 づ く フィ ル タ は、 構 文
FNAME("<regex>") 内の任意の関数がキーワード STACK で表される
関数の配列内に存在するかどうかを判定することによって指定され
ます。
(FNAME("myfunc") SOME IN STACK)
データオブジェクトフィルタは、静的関数フィルタと似て い て、
DOBJ キーワードと構文construct DNAME("<regex>") を括弧で囲っ
て使用します。
メモリーオブジェクトフィルタは、mobj_list コマンドで示してい
るようなメモリーオブジェクトの名前と、オブジェクトのインデッ
クス (整数値) または一群のオブジェクトのインデックスを使用し
て指定します (<Unknown> メモリーオブジェクトのインデックスは
-1)。
データオブジェクトフィルタおよびメモリーオブジェクトフィルタ
は、データ領域データを持つハードウェアカウンタパケットにのみ
有効です。そのほかのすべてのパケットは、そうしたフィルタでは
除外されます。
仮想または物理アドレスの直接フィルタは、VADDR また は PADDR
とアドレスの関係式を使って指定します。
メモリーオブジェクトの定義 (mobj_define コマンド) では、これ
らは、メモリーカウンタおよびデータ領域データのハードウェアカ
ウンタパケットにのみ適用できま す。 式 は 整 数 ま た は -1
(<Unknown> メモリーオブジェクトの場合) を返します。
互換性
er_print は、以前のバージョンのツール (Forte Developer 7 以
降) で記録された実験で機能しますが、より新しいバージョンで記
録された実験で機能しない可能性があります。そうした実験に対し
て呼び出された場合は、警告が出力されます。実験の記録されたリ
リースの er_print バージョンを使用してください。 Sun Studio
12 より前のバージョンで記録された実験の読み取り時は、将来の
リリースで実験が読み取れなくなるという警告も表示されます。
関連項目
analyzer(1)、 collect(1)、 collector(1)、 dbx(1)、
er_archive(1)、 er_cp(1)、 er_export(1)、 er_mv(1)、
er_rm(1)、 er_src(1)、 libcollector(3)、 tha(1)、 regex(5)、
および、マニュアル 『プログラムのパフォーマンス解析』