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

印刷ビューの終了

更新: 2015 年 1 月
 
 

ツールがソースコードを見つけるしくみ

注釈付きソースコードと注釈付き逆アセンブリコードを表示するには、パフォーマンスアナライザと er_print ユーティリティーが、実験が実行されたプログラムで使用されているソースコードおよびロードオブジェクトファイルにアクセスできる必要があります。

ロードオブジェクトファイルは、最初に実験の archives ディレクトリで検索されます。そこに見つからない場合は、後述のとおり、ソースファイルおよびオブジェクトファイルと同じアルゴリズムを使用して検索されます。

ほとんどの実験で、ソースファイルとオブジェクトファイルはフルパス形式で記録されます。Java ソースファイルにも、ファイルへのディレクトリ構造を示すパッケージ名があります。実験を、それが記録された同じシステムで表示する場合、ソースファイルとロードオブジェクトはフルパスを使用して見つけることができます。実験を別のマシンに移動した場合や別のマシンで表示する場合は、それらのフルパスにアクセスできないことがあります。

ソースファイルとオブジェクトファイルを見つけるために、パスマッピングとパス検索という 2 つの補完的な方法が使用されます。ロードオブジェクトファイルが archives サブディレクトリに見つからない場合も、それらを見つけるために同じ方法が使用されます。

パスマップと検索パスを設定すると、ツールが実験で参照されているファイルを見つけやすくなります。パフォーマンスアナライザでは、構成設定で説明されているように、「設定」ダイアログボックスを使用して「パスマップ」タブでパスマップを設定し、「検索パス」タブを使用して検索パスを設定します。er_print ユーティリティーの場合は、Commands That Control Searching For Source Filesで説明されている pathmap および ソースファイルの検索を制御するコマンド ディレクティブを使用します。

最初にパスマッピングが適用され、ファイルのフルパスの先頭を別のパスで置き換える方法を指定します。たとえば、ファイルが /a/b/c/sourcefile と指定され、pathmap ディレクティブで /a/ から /x/y/ へのマッピングが指定されている場合は、ファイルを /x/y/b/c/sourcefile で見つけることができます。/a/b/c//x/ にマップする pathmap ディレクティブでは、/x/sourcefile でこのファイルを見つけることができます。

パスマッピングによってファイルが見つからない場合は、検索パスが使用されます。検索パスは、指定のベース名を持つファイルを検索するディレクトリのリストを指定します。上記の例では、ベース名は sourcefile です。setpath コマンドで検索パスを設定し、addpath コマンドで検索パスにディレクトリを追加することができます。Java ファイルの場合は、パッケージ名が試されたあとでベース名が試されます。

検索パス内の各ディレクトリを使用して、試行するフルパスが構築されます。Java ソースファイルの場合は、2 つのフルパスが構築されます。1 つはベース名、もう 1 つはパッケージ名のものです。ツールは各フルパスにパスマッピングを適用し、マップされたパスのいずれもファイルを指していない場合は、次の検索パスディレクトリを試します。

検索パスにファイルが見つからず、どのパスマッピング接頭辞も元のフルパスと一致していなかった場合は、元のフルパスが試されます。いずれかのパスマップ接頭辞が元のフルパスと一致していたが、ファイルが見つからなかった場合、元のフルパスは試されません。

デフォルトの検索パスには現在のディレクトリと実験ディレクトリが含まれるため、ソースファイルにアクセスできるようにする 1 つの方法は、これらの場所のいずれかにソースファイルをコピーするか、ソースファイルの現在の場所を指すシンボリックリンクをこれらの場所に置くことです。