ナビゲーションリンクをスキップ | |
印刷ビューの終了 | |
Oracle Solaris Studio 12.3: dbx コマンドによるデバッグ Oracle Solaris Studio 12.3 Information Library (日本語) |
コンパイル後にソースファイルを移動した場合や、あるマシンで構築し別のマシンでデバッグする場合、あるいは、「ソースファイルおよびオブジェクトファイルの検索」で説明されている状況のいずれかに当てはまる場合、マクロスキミングでは、スキミングしているファイルのインクルードファイルが見つからないことがあります。この状況では、ファイルが見つからないほかの場合と同様に、pathmap コマンドを使用することで、マクロスキマーはインクルードディレクトリを見つけやすくなります。たとえば、オプション -I/export/home/proj1/include でコンパイルし、コードに文 #include "module1/api.h" があると仮定します。その後、proj1 から proj2 に名前を変更した場合、次の pathmap コマンドにより、マクロスキマーはファイルを見つけやすくなります。
pathmap /export/home/proj1 /export/home/proj2
パスマップは、元のコードのコンパイルに使用されたコンパイラには適用されません。
マクロの作業以外では、ファイルが見つからないときに pathmap コマンドを使用してパスマップを変更すると変更はただちに有効になりますが、マクロの作業では、パスマップを有効にするにはアプリケーションを再度読み込む必要があります。
あるマシンで構築し別のマシンでデバッグする場合に、pathmap コマンドによって dbx は正しいファイルを見つけやすくなります。ただし、/usr/include/stdio.h などのシステムインクルードファイルは通常は構築マシンからエクスポートされないため、マクロスキマーではデバッグマシン上のファイルが使用される可能性があります。場合によっては、デバッグマシン上でステムインクルードファイルを使用できないことがあります。また、システム固有のマクロとシステムに依存するマクロは、デバッグマシンと構築マシンとでは異なる場合があります。
スキミングの問題が pathmap コマンドで解決されない場合は、コードを -g3 オプションでコンパイルし、macro_source dbx 環境変数を skim_unless_compiler または compiler に設定することを検討してください。