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

コマンド参照

thread

次のコマンドのうち tid が指定されていないコマンドでは、現在のスレッドが暗黙指定されます。

指定スレッドに関する既知の情報すべてを表示するには、次のように入力します。


thread -info tid

指定の (または現在の) スレッドを隠すか、または表示します。これは、総称 threads リストに表示される場合とされない場合があります。


thread [-hide | -unhide] tid

すべてのスレッドを表示します。


thread -unhide all

指定のスレッドを実行させないようにします。中断されたスレッドは、threads リストに S をつけて示されます。


thread -suspend tid

-suspend の効果を取り消します。


thread -suspend tid

threads

現在のモードを表示します。


threads -mode

スレッドがデフォルトによりすべてのスレッドを表示するか、またはそれらをフィルタ処理するかを指定します。


threads -mode [all | filter]

スレッドと LWP の状態

表 12-1 スレッドと LWP の状態

スレッドと LWP の状態 

説明 

中断中 

スレッドが明示的に中断されています。 

実行可能 

スレッドは実行可能で、LWP を計算資源として保持しています。 

ゾンビ 

切り離されたスレッドが終了すると (thr_exit)、それは thr_join() によって結合されるまでゾンビ状態になります。THR_DETACHED は、スレッド作成時 (thr_create()) に指定されたフラグです。切り離されていないスレッドが終了すると、LWP と結合するまでゾンビ状態になります。

syncobj でスリープ

スレッドは、指定の同期化オブジェクトでブロック化されています。libthreadlibthread_db が提供するサポートのレベルによって、syncobj は、16 進アドレスのように単純な場合もあれば、より多くの情報を含む場合もあります。

活動状態 

スレッドは ある LWP 上で活動中ですが、dbx はその LWP にアクセスできません。

不明 

dbx が状態を判別できません。

lwpstate

結合または活動中のスレッドの状態は、それに対応する LWP の状態になります。 

実行中 

LWP が実行中でしたが、ほかの LWP と同期をとって停止しました。 

システムコールnum

LWP が特定のシステムコールへの入口で停止しました。 

システムコールが num を返す

LWP が特定のシステムコールからの出口で停止しました。 

ジョブ制御 

LWP がジョブ制御のために停止しました。 

LWP 中断 

LWP がカーネルにブロックされました。 

ステップ動作 

LWP がステップ動作を完了しました。 

ブレークポイント 

LWP がブレークポイントを検出した直後。 

フォルト num

LWP に特定のフォルトが起こりました。 

シグナル name

LWP が特定のシグナルを受け取りました。 

プロセス同期 

この LWP が属するプロセスが実行を開始しました。 

LWP 終了中 

LWP の終了プロセスが進行中です。