Oracle Solaris Studio 12.2: dbx コマンドによるデバッグ

ソースファイルおよびオブジェクトファイルの検索

dbx には、プログラムに関連するソースコードファイルの位置を認識させる必要があります。ソースファイルのデフォルトディレクトリは、最後のコンパイル時にそれらが存在したディレクトリです。ソースファイルを移動したか、またはそれらを新しい位置にコピーした場合は、プログラムを再リンクするか、新しい位置に変更してからデバッグを行うか、または pathmap コマンドを使用します。

Sun Studio 11 以前のリリースの dbx で使用されていたスタブフォーマットでは、dbx のデバッグ情報は、オブジェクトファイルを使用してその他のデバッグ情報を読み込むことがあります。ソースファイルは、dbx がソースコードを表示するときに使用されます。

ソースファイルへのパスを含むシンボリック情報は、実行ファイルに含まれています。dbx でソース行を表示する必要がある場合は、必要な分だけシンボリック情報を読み込んでソースファイルの位置を特定し、そこから行を読み取り、表示します。

シンボリック情報には、ソースファイルへのフルパス名が含まれますが、dbx コマンドを入力した場合は、通常はファイルのベース名のみ使用されます。次に例を示します。


stop at test.cc:34

dbx は、シンボリック情報内で、一致するファイルを検索します。

ソースファイルが削除されている場合は、dbx はこれらのファイルからのソース行を表示できませんが、スタックトレースを表示したり、変数値を出力したりできるほか、現在のソース行を把握することもできます。

プログラムをコンパイルしてリンクしたためにソースファイルを移動した場合、その新しい位置を検索パスに追加できます。pathmap コマンドは、ファイルシステムの現在のディレクトリと実行可能イメージ内の名前とのマッピングを作成します。このマッピングは、ソースパスとオブジェクトファイルパスに適用されます。

ディレクトリ from から ディレクトto への新しいマッピングを確立するには、次のように入力します。


(dbx) pathmap [-c] from to

-c を使用すると、このマッピングは、現在の作業ディレクトリにも適用されます。

pathmap コマンドは、ホストによってベースパスの異なる、自動マウントされた明示的な NFS マウントファイルシステムを扱う場合でも便利です。-c は、現在の作業ディレクトリが自動マウントされたファイルシステム上で不正確なオートマウンタが原因で起こる問題を解決する場合に使用してください。

/tmp_mnt/ のマッピングはデフォルトで存在します。

詳細については、pathmap コマンド」を参照してください。