Oracle Solaris Studio 12.2: パフォーマンスアナライザ

ソースリストと逆アセンブリリストを管理するコマンド

ここでは、注釈付きソースおよび逆アセンブリコードの表示を制御するコマンドを説明します。

pcs

現在のソートメトリックで整列されたプログラムカウンタ (Program Counter、PC) と、そのメトリックスのリストを出力します。このリストには、object_select コマンドで関数を非表示にした各ロードオブジェクトのメトリックスを集計した行が含まれています。

psummary

PC リスト内の各 PC の概要メトリックスパネルを現在のソートメトリックスで指定された順序で出力します。

lines

現在のソートメトリックで整列されたソース行と、そのメトリックスのリストを出力します。このリストには、行番号情報を持っていない各関数またはソースファイルが未知である各関数のメトリックスを集計した行と、object_select コマンドで関数を非表示している各ロードオブジェクトのメトリックスを集計した行が含まれています。

lsummary

行リスト内の各行の概要メトリックスパネルを現在のソートメトリックで指定された順序で出力します。

source|src { filename | function_name } [ N]

指定したファイル、または指定した関数を含むファイルの注釈付きソースコードを出力します。いずれの場合も、指定したファイルはパスの通っているディレクトリに存在する必要があります。ソースが GNU Fortran コンパイラでコンパイルされている場合は、ソースに表示されるように、関数名のあとにアンダースコアを 2 つ追加する必要があります。

省略可能なパラメータ N (正の整数) は、ファイル名または関数名があいまいでない場合にだけ使用します。このパラメータを指定した場合は、N 番目の候補が使用されます。番号指定のないあいまいな名前が指定された場合、er_print ユーティリティーはオブジェクトファイル名の候補のリストを表示します。指定された名前が関数の場合は、その関数名がオブジェクトファイル名に追加され、そのオブジェクトファイルの N の値を表す番号も出力されます。

関数名は function"file" としても指定できます。この場合、file は、関数の代替ソースコンテキストを指定するために使用されます。最初の命令の直後にその関数のインデックス行が追加されます。インデックス行は、次の書式で山括弧内にテキストとして表示されます。

<Function: f_name>

関数のデフォルトソースコンテキストは、その関数の最初の命令が帰するソースファイルとして定義されます。これは通常、関数を含むオブジェクトモジュールを生成するためにコンパイルされたソースファイルです。代替ソースコンテキストは、関数に属する命令を含むほかのファイルから構成されます。このようなコンテキストには、インクルードファイルの命令と、指定の関数にインライン化された関数の命令が含まれます。代替のソースコンテキストが存在する場合、デフォルトのソースコンテキストの冒頭に、代替ソースコンテキストが置かれている場所を示す拡張インデックス行のリストを次の形式で組み込みます。

<Function: f, instructions from source file src.h>


注 –

コマンド行から er_print ユーティリティーを起動するときに -source 引数を使用する場合は、file の引用符の前にバックスラッシュのエスケープ文字を付加する必要があります。つまり、関数名の形式は、function\"file\" となります。er_print ユーティリティーが対話モードにあるときは、バックスラッシュは不要です。使用しないでください。


通常、デフォルトのソースコンテキストが使用された場合は、そのファイルに入っているすべての関数についてメトリックスが表示されます。ファイルを明示的に指定した場合は、指定した関数についてのみ、メトリックスが表示されます。

disasm|dis { filename | function_name } [ N]

指定したファイル、または指定した関数を含むファイルの注釈付き逆アセンブリコードを出力します。指定したファイルは、パスの通っているディレクトリに存在する必要があります。

省略可能なパラメータ N の意味は、source コマンドと同じです。

scc com_spec

注釈付きソースのリストに含めるコンパイラのコメントクラスを指定します。クラスリストはコロンで区切ったクラスのリストであり、次のメッセージクラスがゼロ個以上含まれています。

表 5–4 コンパイルコメントメッセージクラス

クラス 

意味  

b[asic]

基本的なレベルのメッセージを表示します。 

v[ersion]

ソースファイル名、最終修正日付、コンパイラコンポーネントのバージョン、コンパイル日付とオプションなどのバージョンメッセージを表示します。 

pa[rallel]

並列化に関するメッセージを表示します。 

q[uery]

最適化に影響するコードに関する問い合わせメッセージを表示します。 

l[oop]

ループの最適化と変換に関するメッセージを表示します。 

pi[pe]

ループのパイプライン化に関するメッセージを表示します。 

i[nline]

関数のインライン化に関するメッセージを表示します。 

m[emops]

ロード、ストア、プリフェッチなどのメモリー操作に関するメッセージを表示します。 

f[e]

フロントエンドのメッセージを表示します。 

co[degen]

コードジェネレータのメッセージを表示します。 

cf

ソースの下部にコンパイラのフラグを表示します。 

all

すべてのメッセージを表示します。 

none

メッセージを表示しません。 

all および none クラスは常に単独で指定します。

scc コマンドを省略した場合は、basic がデフォルトのクラスになります。class-list が空の状態で scc コマンドを入力した場合、コンパイラのコメントは出力されません。通常、scc コマンドは、.er.rc ファイルでのみ使用します。

sthresh value

注釈付きソースコードでのメトリックスの強調表示に使用するしきい値の百分率を指定します。ファイル内のソース行で、メトリック値が、そのメトリックの最大値の value % 以上である場合、そのメトリックが発生する行の先頭に ## が挿入されます。

dcc com_spec

注釈付き逆アセンブリリストに含めるコンパイラのコメントクラスを指定します。クラスリストは、コロンで区切られたクラスのリストです。利用可能なクラスのリストは、表 5–4に示す注釈付きソースコードリストのクラスリストと同じです。クラスリストには、次のオプションを追加できます。

表 5–5 dcc コマンドの追加オプション

オプション 

意味  

h[ex]

命令の 16 進値を示します。 

noh[ex]

命令の 16 進値を示しません。 

s[rc]

ソースリストと注釈付き逆アセンブリリストをインタリーブします。 

nos[rc]

ソースリストと注釈付き逆アセンブリリストをインタリーブしません。 

as[rc]

注釈付きソースコードと注釈付き逆アセンブリリストをインタリーブします。 

dthresh value

注釈付き逆アセンブリコードでのメトリックスの強調表示に使用するしきい値の百分率を指定します。ファイル内の命令行で、メトリック値が、そのメトリックの最大値の value % 以上である場合、そのメトリックが発生する行の先頭に ## が挿入されます。

cc com_spec

注釈付きのソースと逆アセンブリリストに含めるコンパイラのコメントクラスを指定します。クラスリストは、コロンで区切られたクラスのリストです。利用可能なクラスのリストは、表 5–4 に示す注釈付きソースコードリストのクラスリストと同じです。

setpath path_list

ソースファイルやオブジェクトファイルの検索に使用するパスを設定します。path_list は、コロンで区切られたディレクトリのリストです。ディレクトリ名にコロン文字がある場合は、バックスラッシュでコロンをエスケープします。特別なディレクトリ名 $expts は、現在の実験を読み込まれた順序で示します。これは、$ の 1 文字に短縮できます。

デフォルトの設定は、$expts:.. です。現在のパス設定の検索時にファイルが見つからなかった場合は、コンパイルされているフルパス名が使用されます。

引数のない setpath は、現在のパスを出力します。

addpath path_list

現在の setpath の設定に path_list を付加します。

pathmap old-prefix new-prefix

addpath または setpath で設定された path_list を使用してファイルが見つからなかった場合、pathmap コマンドを使用して、1 つまたは複数のパスの再マッピングを指定できます。ソースファイル、オブジェクトファイル、または共有オブジェクトのパス名が old-prefix で指定した接頭辞で始まる場合、古い接頭辞は new-prefix で指定した接頭辞に置き換えられます。結果のパスは、ファイルの検索に使用されます。複数の pathmap コマンドが提供されており、それぞれが、ファイルが見つかるまで試行されます。