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

オブジェクトファイルの読み込み

オブジェクト (.o) ファイルがリンクされると、リンカーは任意で要約情報のみを結果ロードオブジェクトに保存することができます。この要約情報は実行時に dbx で使用して、実行可能ファイルからではなくオブジェクトファイル自体から残りのデバッグ情報を読み込むことができます。作成された実行可能ファイルの容量は小さいですが、dbx を実行するときにオブジェクトファイルが必要になります。

この要件は、オブジェクトファイルを -xs オプションを使用してコンパイルし、オブジェクトファイルのすべてのデバッグ情報をリンク時に実行可能ファイルに入れることによって変更することができます。

アーカイブライブラリ (.a ファイル) をオブジェクトファイルとともに作成して、そのアーカイブライブラリをプログラムで使用した場合、dbx は必要に応じてアーカイブライブラリからオブジェクトファイルを抽出します。ここではオリジナルのオブジェクトファイルは必要ありません。

ただし、すべてのデバッグ情報を実行可能ファイルに入れると、追加のディスク容量が必要になります。デバッグ情報は実行時にプロセスイメージに読み込まれないため、プログラムが遅くなることはありません。

スタブ型式を使用した際のデフォルト動作では、コンパイラは要約情報のみを実行可能ファイルに入力します。

DWARF 形式では、オブジェクトファイルの読み込みをサポートしていません。


注 –

DWARF 形式は、同じ情報をスタブ形式で記録するよりも大幅にサイズが小さくなります。ただし、すべての情報が実行可能ファイルにコピーされるため、DWARF 情報はスタブ情報よりもサイズが大きく見えてしまいます。