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

where コマンド

where コマンドは、呼び出しスタックを出力します。OpenMP のスレーブスレッドの場合、関連するフレームがアクティブ状態であれば、マスタースレッドのスタックトレースも出力されます。

ネイティブモードの構文

where

手続きトレースバックを出力します。

where number

トレースバックの上から number 個のフレームを出力します。

where -f number

フレーム number からトレースバックを開始します。

where -fp address_expression

fp レジスタに address_expression 値がある場合、トレースバックを出力します。

where -h

隠しフレームを含めます。

where -l

関数名を持つライブラリ名を含めます。

where -q

クィックトレースバック (関数名のみ)。

where -v

冗長トレースバック (関数の引数と行情報を含む)。

ここで

number は、呼び出しタックフレームの数です。

これらの構文はスレッドや LWP ID を結合させることにより、指定エンティティのトレースバックを取り出すことがあります。

-fp オプションは、fp (frame pointer) レジスタが壊れていてイベント dbx が呼び出しスタックを正しく再構築できないときに役立ちます。このオプションは、値が正しい fp レジスタ値かをテストするためのショートカットを提供します。指定した正しい値が特定されたことが確認できた場合、assign コマンドや lwp コマンドを使用して設定できます。

Java モードの構文

where [thread_id]

メソッドのトレースバックを出力します。

where [thread_id] number

トレースバックの上から number 個のフレームを出力します。

where -f [thread_id] number

フレーム number からトレースバックを開始します。

where -q [thread_id]

クィックトレースバック (関数名のみ)。

where -v [thread_id]

冗長トレースバック (関数の引数と行情報を含む)。

ここで

number は、呼び出しタックフレームの数です。

thread_id は、dbx 形式のスレッド ID またはスレッドを指定した Java スレッド名です。