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

loadobject コマンド

loadobject コマンドは、現在のロードオブジェクトの名前を出力します。ネイティブモードでだけ有効です。

構文

loadobject -list [regexp] [-a]

読み込まれているロードオブジェクトを表示します (loadobject -list コマンド」参照)。

loadobject -load loadobject

指定したロードオブジェクトのシンボルを読み込みます (loadobject -load コマンド」参照)。

loadobject -unload [regexp]

指定したロードオブジェクトの読み込みを解除します (loadobject -unload コマンド」参照)。

loadobject -hide [regexp]

dbx の検索アルゴリズムからロードオブジェクトを削除します (loadobject -hide コマンド」参照)。

loadobject -use [regexp]

dbx の検索アルゴリズムにロードオブジェクトを追加します (loadobject -use コマンド」参照)。

loadobject -dumpelf [regexp]

ロードオブジェクトの ELF 情報を表示します (loadobject -dumpelf コマンド」参照)。

loadobject -exclude ex_regexp

ex_regexp に一致するロードオブジェクトを自動的に読み込まないように指定します (loadobject -exclude コマンド」参照)。

loadobject exclude -clear

除外パターンのリストをクリアします (loadobject -exclude コマンド」参照)。

ここで

regexp は正規表現です。指定していない場合は、コマンドがすべてのロードオブジェクトに適用されます。

ex-regexp は省略できません。

このコマンドには、別名 lo がデフォルトで設定されています。

loadobject -dumpelf コマンド

loadobject -dumpelf コマンドは、ロードオブジェクトのさまざまな ELF の詳細情報を表示します。ネイティブモードでだけ有効です。

構文

loadobject -dumpelf [regexp]

ここで

regexp は正規表現です。指定していない場合は、コマンドがすべてのロードオブジェクトに適用されます。

このコマンドは、ディスク上のロードオブジェクトの ELF 構造に関する情報をダンプします。この出力の詳細は、今後変更される可能性があります。この出力を解析する場合は、Solaris OS のコマンドである dump または elfdump を使用してください。

loadobject -exclude コマンド

loadobject -exclude コマンドは、指定した正規表現に一致するロードオブジェクトを自動的に読み込まないように指定します。

構文

loadobject -exclude ex_regexp [-clear]

ここで

ex_regexp は正規表現です。

このコマンドは、指定した正規表現に一致するロードオブジェクトのシンボルを dbx で自動的に読み込まないように指定します。ほかの loadobject のサブコマンドでの regexp とは異なり、ex_regexp を指定しない場合は、すべてのロードオブジェクトを対象に処理が実行されることはありません。ex-regexp を指定しない場合は、このコマンドは前の loadobject -exclude コマンドで指定した除外パターンを表示します。

-clear を指定した場合は、除外パターンのリストが削除されます。

現時点では、この機能を使用してメインプログラムや実行時リンカーを読み込まないように指定することはできません。また、このコマンドを使用して C++ 実行時ライブラリを読み込まないように指定すると、C++ の一部の機能が正常に機能しなくなります。

このオプションは、実行時チェック (RTC) では使用しないでください。

loadobject -hide コマンド

loadobject -hide コマンドは、dbx の検索アルゴリズムからロードオブジェクトを削除します。

構文

loadobject -hide [regexp]

ここで

regexp は正規表現です。指定していない場合は、コマンドがすべてのロードオブジェクトに適用されます。

このコマンドは、プログラムのスコープからロードオブジェクトを削除し、その関数およびシンボルを dbx で認識しないように設定します。また、このコマンドは、「preload」ビットをリセットします。

loadobject -list コマンド

loadobject -list コマンドは、読み込まれているロードオブジェクトを表示します。ネイティブモードでだけ有効です。

構文

loadobject -list [regexp] [-a]

ここで

regexp は正規表現です。指定していない場合は、コマンドがすべてのロードオブジェクトに適用されます。

各ロードオブジェクトのフルパス名が表示されます。また、余白部分には状態を示す文字が表示されます。隠されたロードオブジェクトは、-a オプションを指定した場合のみリスト表示されます。

h

"hidden" を意味します (シンボルは、whatisstop in などのシンボル照会では検出されません)。

u

有効なプロセスがある場合、u は「マップされていない」を意味します。

p

この文字は、事前に読み込まれた LO、つまり loadobject -load コマンドまたはプログラムの dlopen イベントの結果を示します。

次に例を示します。

(dbx) lo -list libm
/usr/lib/64/libm.so.1
/usr/lib/64/libmp.so.2
(dbx) lo -list ld.so
h  /usr/lib/sparcv9/ld.so.1 (rtld)

最後の例は、実行時リンカーのシンボルがデフォルトでは隠されていることを示します。これらのシンボルを dbx コマンドで使用するには、次の loadobject -use コマンド」を使用します。

loadobject -load コマンド

loadobject -load コマンドは、指定したロードオブジェクトのシンボルを読み込みます。ネイティブモードでだけ有効です。

構文

loadobject -load loadobject

ここで

loadobject には、フルパス名または /usr/lib/usr/lib/sparcv9、または /usr/lib/amd64 内のライブラリを指定します。デバッグ中のプログラムがある場合は、該当する ABI ライブラリのディレクトリだけが検索されます。

loadobject -unload コマンド

loadobject -unload コマンドは、指定したロードオブジェクトを読み込み解除します。ネイティブモードでだけ有効です。

構文

loadobject -unload [regexp]

ここで

regexp は正規表現です。指定していない場合は、コマンドがすべてのロードオブジェクトに適用されます。

このコマンドは、コマンド行で指定した regexp に一致するすべてのロードオブジェクトのシンボルを読み込み解除します。debug コマンドで読み込んだ主プログラムは読み込み解除できません。また、使用中のロードオブジェクトや、dbx が正常に動作するために必要なロードオブジェクトの読み込み解除もできない場合があります。

loadobject -use コマンド

loadobject -use コマンドは、dbx の検索アルゴリズムにロードオブジェクトを追加します。ネイティブモードでだけ有効です。

構文

loadobject -use [regexp]

ここで

regexp は正規表現です。指定していない場合は、コマンドがすべてのロードオブジェクトに適用されます。