dbx コマンドによるデバッグ

.o ファイルが存在しない場合のデバッグ

-g -c オプションでコンパイルされたプログラムは、各モジュールのデバッグ情報を、そのモジュールの .o ファイルに保存します。自動読み取り機能を使用するには、プログラム .o ファイルと共有ライブラリの .o ファイルが続けて存在している必要があります。

デバッグしたいモジュールのプログラムの .o ファイルまたは共有ライブラリの .o ファイルの維持が不可能な場合は、コンパイラの -xs オプションを使用して ( -g オプションの後に付けます) プログラムをコンパイルします。-xs でコンパイルしたモジュールと、このオプションを使わずにコンパイルしたモジュールが混在してもかまいません。-xs オプションは、コンパイラのリンカーに、すべてのデバッグ情報を実行可能プログラムに配置するよう命令するオプションです。したがって、これらのモジュールをデバッグするのに、.o ファイルの存在は必要ありません。

dbx 4.0 では、-xs オプションでコンパイルされたモジュールのデバッグ情報は、dbx の起動時に読み込まれます。そのため、-xs でコンパイルされた大きなプログラムでは、dbx の起動に時間がかかることがあります。

dbx 5.0 では、-xs でコンパイルされたモジュールのデバッグ情報は、.o ファイルに保存されたデバッグ情報と同様に遅延して読み込まれます。しかし、dbx に、これらの情報を起動時に読み込むよう命令することができます。dbx の環境変数 delay_xs を使用すれば、-xs でコンパイルされたモジュールのデバッグ情報の読み込み遅延機能をオフにすることができます。この環境変数を設定するには、.dbxrc ファイルに次の行を追加します。

dbxenv delay_xs off