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

印刷ビューの終了

更新: 2015 年 1 月
 
 

オブジェクトファイルのロード

オブジェクト (.o) ファイルがリンクされるとき、リンカーはオプションで、結果のロードオブジェクトにサマリー情報のみを格納できます。このサマリー情報は実行時に dbx で使用して、実行可能ファイルからではなくオブジェクトファイル自体から残りのデバッグ情報を読み込むことができます。作成される実行可能ファイルのディスク占有領域は小さくなりますが、dbx の実行時にそのオブジェクトファイルが使用可能である必要があります。

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

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

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

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

オブジェクトファイルは、–xs オプションを使用して DWARF で作成できます。詳細については、インデックス DWARF (-xs[={yes|no}])を参照してください。


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

スタブのインデックスの詳細については、install-dir/solarisstudio12.4/READMEs/stabs.pdf のパスにあるスタブのインタフェースに関するガイドを参照してください。