JavaScript is required to for searching.
ナビゲーションリンクをスキップ
印刷ビューの終了
Oracle Solaris Studio 12.2: dbx コマンドによるデバッグ
search filter icon
search icon

ドキュメントの情報

はじめに

1.  dbx の概要

2.  dbx の起動

3.  dbx のカスタマイズ

4.  コードの表示とコードへの移動

5.  プログラムの実行制御

6.  ブレークポイントとトレースの設定

7.  呼び出しスタックの使用

8.  データの評価と表示

9.  実行時検査

10.  修正継続機能 (fix と cont)

11.  マルチスレッドアプリケーションのデバッグ

12.  子プロセスのデバッグ

13.  OpenMP プログラムのデバッグ

14.  シグナルの処理

15.  dbx を使用してプログラムをデバッグする

16.  dbx を使用した Fortran のデバッグ

17.  dbx による Java アプリケーションのデバッグ

18.  機械命令レベルでのデバッグ

19.  dbx の Korn シェル機能

20.  共有ライブラリのデバッグ

A.  プログラム状態の変更

B.  イベント管理

イベントハンドラ

イベントの安全性

イベントハンドラの作成

イベントハンドラを操作するコマンド

イベントカウンタ

イベント指定の設定

ブレークポイントイベント仕様

in function

at [filename: ]line_number

at address_expression

infile filename

infunction function

inmember function inmethod function

inclass classname [-recurse | -norecurse]

inobject object-expression [-recurse | -norecurse]

データ変更イベント指定

access mode address-expression [, byte-size-expression ]

change variable

cond condition-expression

システムイベント指定

dlopen [ lib-path ] dlclose [ lib-path ]

fault fault

lwp_exit

sig signal

sig signal sub-code

sysin code | name

sysout code | name

sysin | sysout

実行進行状況イベント仕様

exit exitcode

next

returns

returns function

step

その他のイベント仕様

attach

detach

lastrites

proc_gone

prog_new

stop

sync

syncrtld

thr_create [thread_id]

thr_exit

throw

throw type

throw -unhandled

throw -unexpected

timer seconds

イベント指定のための修飾子

-if condition

-resumeone

-in function

-disable

-count n -count infinity

-temp

-instr

-thread thread_id

-lwp lwp_id

-hidden

-perm

解析とあいまいさに関する注意

事前定義済み変数

when コマンドに対して有効な変数

$handlerid

when コマンドと特定のイベントに対して有効な変数

イベントハンドラの例

配列メンバーへのストアに対するブレークポイントを設定する

単純なトレースを実行する

関数の中だけハンドラを有効にする (in function)

実行された行の数を調べる

実行された命令の数をソース行で調べる

イベント発生後にブレークポイントを有効にする

replay 時にアプリケーションファイルをリセットする

プログラムの状態を調べる

浮動小数点例外を捕捉する

C.  コマンドリファレンス

索引

イベント指定のための修飾子

イベント指定のため修飾子は、ハンドラの追加属性を設定します。もっとも一般的な種類はイベントフィルタです。修飾子はイベント指定のキーワードのあとに指定しなければなりません。修飾語はすべて ' -' で始まります (その前にブランクが置かれます)。各修飾子の構成は次のとおりです。

-if condition

イベント仕様で指定されたイベントが発生したとき、条件が評価されます。イベントは、条件が非ゼロと評価された場合にだけ発生すると考えられます。

-if が、in または at などの単独のソース位置に基づくイベントで使用された場合、cond はその位置に対応するスコープで評価されます。そうでない場合は、必要なスコープによって正しく修飾する必要があります。

-resumeone

-resumeone 修飾子は、-if 修飾子とともにイベント仕様内でマルチスレッドプログラムに対して使用して、条件に関数呼び出しが含まれている場合に 1 つのスレッドのみを再開することができます。詳細については、「条件付イベントでのフィルタの使用」を参照してください。

-in function

イベントは、最初の指定 function の命令に達したときから関数が戻るまでの間に発生した場合にのみ開始されます。関数の再帰は無視されます。

-disable

無効な状態にしてイベントを作成します。-

-count n -count infinity

-count n および -count infinity 修飾子は、0 からのハンドラカウントを持ちます (「イベントカウンタ」参照)。イベントが発生するたび、n に達するまでカウントはインクリメントします。一度それが生じると、ハンドラはファイアし、カウンタはゼロにリセットされます。

プログラムが実行または再実行されると、すべてのイベントのカウントがリセットされます。より具体的に言えば、カウントは sync イベントが発生するとリセットされます。

カウントは debug -r コマンド (debug コマンド」参照) または attach -r コマンド (attach コマンド」参照) を使用して新しいプログラムのデバッグを開始したときにリセットされます。

-temp

一時ハンドラを作成します。イベントが発生すると、一時イベントは削除されます。デフォルトではハンドラは、一時イベントではありません。ハンドラが計数ハンドラ (-count が指定されたイベント) の場合はゼロに達すると自動的に破棄されます。

一時ハンドラをすべて削除するには delete -temp を実行します。

-instr

イベントを命令レベルで動作させます。これにより、ほとんどの ' i' で始まるコマンドは不要となります。この修飾子は、イベントハンドラの 2 つの面を修飾します。

-thread thread_id

イベントを引き起こしたスレッドが thread_id と一致する場合にかぎり、アクションが実行されます。プログラムの実行を繰り返すうちに特定スレッドの thread_id が変わってしまうことがあります。

-lwp lwp_id

イベントを引き起こしたスレッドが lwp_id と一致する場合にかぎり、アクションが実行されます。イベントを引き起こしたスレッドが lwp_id と一致する場合にかぎり、アクションが実行されます。プログラムの実行を繰り返すうちに特定スレッドの lwp_id が変わってしまうことがあります。

-hidden

ハンドラが正規の status コマンドに示されないようにします。隠されたハンドラを表示するには、status -h を使用してください。

-perm

通常、すべてのハンドラは、新しいプログラムが読み込まれると廃棄されます。-perm 修飾子を使用すると、ハンドラはデバッグセッションが終わっても保存されます。delete コマンド単独では、永続ハンドラは削除されません。永続ハンドラを削除するには、delete -p を使用してください。