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

付録 C コマンドリファレンス

この付録では、dbx コマンドの構文と機能について詳しく説明します。

assign コマンド

ネイティブモードでは、assign コマンドは新しい値をプログラムの変数に代入します。Java モードでは、assign コマンドは新しい値を局所変数またはパラメータに代入します。

ネイティブモードの構文

assign variable = expression

ここで

expression は、variable に代入される値です。

Java モードの構文

assign identifier = expression

ここで

class_name は、Java クラス名で、パッケージのパス (. (ピリオド) を修飾子として使用。たとえば test1.extra.T1.Inner) またはフルパス名 (# 記号で始まり、/ (スラッシュ) や $ 記号を修飾子として使用。たとえば #test1/extra/T1$Inner) のいずれかで指定します。修飾子 $ を使用する場合は、class_name を引用符で囲みます。

expression は、有効な Java の式です。

field_name は、クラス内のフィールド名です。

identifierthis を含む局所変数またはパラメータで、現在のクラスインスタンス変数 (object_name.field_name) またはクラス (静的) 変数 (class_name.field_name) です。

object_name は、Java オブジェクトの名前です。

attach コマンド

attach コマンドは実行中プロセスに dbx を接続し、実行を停止してプログラムをデバッグ制御下に入れます。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

attach process_id

プロセス ID process_id を持つプログラムのデバッグを開始します。dbx は、/proc を使用してプログラムを見つけます。

attach -p process_id program_name

プロセス ID process_id を持つ program_name のデバッグを開始します。

attach program_name process_id

プロセス ID process_id を持つ program_name のデバッグを開始します。program には &dash を指定できます。dbx/proc を使用してプログラムを見つけます。

attach -r ...

-r オプションを使用すると、dbx は、watchdisplay whenstop のコマンドをすべて保持します。-r オプションを使用しない場合は、delete allundisplay 0 コマンドが暗黙に実行されます。

ここで

process_id は、動作中のプロセスのプロセス ID です。

program_name は、実行中プログラムのパス名です。

Procedure実行中の Java プロセスに接続する

  1. JVM ソフトウェアで libdbx_agent.so を認識できるように、libdbx_agent.soLD_LIBRARY_PATH に追加します。libdbx_agent.so は次のようにして追加します。

    • Solaris OS を実行しているシステムで 32 ビットの JVM ソフトウェアを使用している場合は、/installation_directory /libdbx_agent.soLD_LIBRARY_PATH に追加します。

    • Solaris OS を実行している SPARC システムで 64 ビットの JVM ソフトウェアを使用している場合は、/installation_directory /lib/v9/libdbx_agent.soLD_LIBRARY_PATH に追加します。

    • Solaris OS または Linux OS を実行している x 64 システムで 64 ビットの JVM ソフトウェアを使用している場合は、/installation_directory /lib/amd64/libdbx_agent.soLD_LIBRARY_PATH に追加します。

    installation_directory は Oracle Solaris Studio ソフトウェアがインストールされている場所です。

  2. 次のように入力して、Java アプリケーションを起動します。

    java -Djava.compiler=NONE -Xdebug -Xnoagent -Xrundbx_agent myclass.class

  3. その後、次のようにプロセス ID を指定して dbx を起動し、プロセスに dbx を接続します。

    dbx - process_id

bsearch コマンド

bsearch コマンドは、現在のソースファイルにおいて逆方向検索を行います。ネイティブモードでだけ有効です。

構文

bsearch string

現在のファイルの中で、string を逆方向で検索します。

bsearch

最後の検索文字列を使用して検索を繰り返します。

ここで

string は、文字列です。

call コマンド

ネイティブモードでは、call コマンドは手続きを呼び出します。Java モードでは、call コマンドはメソッドを呼び出します。

ネイティブモードの構文

call procedure ([parameters ]) [-lang language] [-resumeone]

ここで

language は呼び出す手続きの言語です。

procedure は、手続きの名前です。

parameters は、手続きのパラメータです。

call コマンドによって関数を呼び出すこともできます。戻り値を調べるには、print コマンドを使用します (print コマンド」 参照)。

呼び出されたメソッドがブレークポイントに達することがあります。cont コマンド (cont コマンド」を参照) を使用して実行を継続するか、pop -c (pop コマンド」参照) を使用して呼び出しを中止するかを選択できます。呼び出しの中止は、呼び出されたメソッドがセグメント例外を引き起こした場合にも便利です。

-lang オプションは呼び出す手続きの言語で、指定した言語の呼び出し規則を使用するよう dbx に指示します。このオプションは、呼び出された手続きがデバッグ情報なしでコンパイルされ、dbx がパラメータを渡す方法が不明な場合に役立ちます。

-resumeone オプションは手続きが呼び出されたときにスレッドを 1 つだけ再開します。詳細は、「実行の再開」を参照してください。

Java モードの構文

call [class_name.|object_name .] method_name ([parameters ]}

ここで

class_name は Java クラス名で、パッケージのパス (ピリオド (.) を修飾子として使用。たとえば test1.extra.T1.Inner) またはフルパス名 (ポンド記号 (#) で始まり、スラッシュ (/) やドル記号 ($) を修飾子として使用。たとえば #test1/extra/T1$Inner) のいずれかで指定します。修飾子 $ を使用する場合は、class_name を引用符で囲みます。

object_name は、Java オブジェクトの名前です。

method_name は、Java メソッドの名前です。

parameters は、メソッドのパラメータです。

呼び出されたメソッドがブレークポイントに達することがあります。cont コマンド (cont コマンド」を参照) を使用して実行を継続するか、pop -c (pop コマンド」参照) を使用して呼び出しを中止するかを選択できます。呼び出しの中止は、呼び出されたメソッドがセグメント例外を引き起こした場合にも便利です。

cancel コマンド

cancel コマンドは、現在のシグナルを取り消します。このコマンドは、主として when コマンドの本体内で使用します (when コマンド」参照)。ネイティブモードでだけ有効です。

通常、シグナルが取り消されるのは、dbx がシグナルのため停止した場合です。when コマンドがシグナルイベントに接続されている場合、そのシグナルが自動的に取り消されることはありません。cancel コマンドを使用すれば、シグナルを明示的に取り消せます。

構文

cancel

catch コマンド

catch コマンドは、指定のシグナルを捕獲します。ネイティブモードでだけ有効です。

シグナルを捕獲すると、プロセスがそのシグナルを受信したときに dbx がプログラムを停止します。その時点でプログラムを続行しても、シグナルがプログラムによって処理されることはありません。

構文

catch

捕獲するシグナルのリストを出力します。

catch number number ...

番号が number のシグナルを捕獲します。

catch signal signal ...

signal によって名前を付けられたシグナルを捕獲します。 SIGKILL を捕獲したり無視したりすることはできません。

catch $(ignore)

すべてのシグナルを捕獲します。

ここで

number は、シグナルの番号です。

signal はシグナル名です。

check コマンド

check コマンドは、メモリーへのアクセス、メモリーリーク、メモリー使用状況をチェックし、実行時検査 (RTC) の現在状態を出力します。ネイティブモードでだけ有効です。

このコマンドによる実行時検査機能は、debug コマンドによって初期状態にリセットされます。

構文

check -access

アクセス検査を起動します。RTC は、次のエラーを報告します。

baf

不正解放

duf

重複解放

maf

境界整列を誤った解放

mar

境界整列を誤った読み取り

maw

境界整列を誤った書き込み

oom

メモリー不足

rob

配列の範囲外のメモリーからの読み取り

rua

非割り当てメモリーからの読み取り

rui

非初期化メモリーからの読み取り

wob

配列の範囲外のメモリーへの書き込み

wro

読み取り専用メモリーへの書き込み

wua

非割り当てメモリーへの書き込み

デフォルトの場合、各アクセスエラーが検出されるとプロセスが停止されます。このデフォルト動作を変更するには、dbx 環境変数 rtc_auto_continue を使用します。on が設定されている場合、アクセスエラーはファイルに記録されます (ファイル名は dbx 環境変数 rtc_error_log_file_name によって制御します)。dbxenv コマンド」を参照してください。

デフォルトの場合、それぞれのアクセスエラーが報告されるのは、最初に発生したときだけです。この動作を変更するには、dbx 環境変数 rtc_auto_suppress を使用します (この変数のデフォルト値は on です)。dbxenv コマンド」を参照してください。

check -leaks [-frames n] [-match m]

リーク検査をオンにします。RTC は、次のエラーを報告します。

aib

メモリーリークの可能性 - 唯一のポインタがブロック中央を指す。

air

メモリーリークの可能性 - ブロックを指すポインタがレジスタ内にのみ存在する。

mel

メモリーリーク - ブロックを指すポインタがない。

リーク検査がオンの場合、プログラムが存在していれば自動リークレポートが作成されます。このとき、可能性のあるリークを含むすべてのリークが報告されます。デフォルトの場合、簡易レポートが作成されます (dbx 環境変数 rtc_mel_at_exit によって制御します)。ただし、リークレポートをいつでも要求することができます (showleaks コマンド」を参照)。

-frames n は、リーク報告時に最大 n 個のスタックフレームが表示されることを意味します。-match m は、複数のリークをまとめます。2 個以上のリークに対する割り当て時の呼び出しスタックが n 個のフレームに一致するとき、これらのリークは 1 つのリークレポートにまとめて報告されます。

n のデフォルト値は、8 または m の値です (どちらか大きい方)。n の最大値は 16 です。m のデフォルト値は、C++ の場合は 3 で、それ以外は 2 です。

check -memuse [-frames n] [-match m]

-memuse オプションは -leaks オプションと同じような動作をし、プログラム終了時、使用中のブロックのレポート (biu) も有効にします。デフォルトの場合、簡易使用中レポートが生成されます (dbx 環境変数 rtc_biu_at_exit によって制御します)。プログラ ム実行中、プログラムの中でメモリーが割り当てられた場所をいつでも調べることができます (showmemuse コマンド」 参照)。

-frames n は、メモリーの使用状況とリークを報告するときに最大 n 個のスタックフレームが表示されることを意味します。-match m は、複数のリークをまと めます。2 個以上のリークに対する割り当て時の呼び出しスタックが n 個のフレームに一致するとき、これらのリークは 1 つのリークレポートにまとめて報告されます。

n のデフォルト値は、8 または m の値です (どちらか大きい方)。n の最大値は 16 です。m のデフォルト値は、C++ の場合は 3 で、それ以外は 2 です。check -leaks も参照してください。

check -all [-frames n] [-match m]

check -access および check -memuse [-frames n] [-match m] と同じです。

dbx 環境変数 rtc_biu_at_exit の値は check -all によって変更されないので、デフォルトの場合、終了時にメモリー使用状況レポートは生成されません。rtc_biu_at_exit 環境変数については、dbx コマンド」を参照してください。

check [functions] [files] [loadobjects]

functionsfilesloadobjects における check -all、suppress all、unsuppress all と同じです。

ここで

functions は、1 個または複数の関数名です。

files は、1 個または複数のファイル名です。

loadobjects は、1 個または複数のロードオブジェクト名です。

これを使用することにより、特定の場所を対象として実行時検査を行えます。


注 –

RTC ですべてのエラーを検出する際、-g を付けてプログラムをコンパイルする 必要はありません。ただし、特定のエラー (ほとんどは非初期化メモリーから読み取られるもの) の正確さを保証するには、シンボリック (-g) 情報が必要となることがあります。このため、一部のエラー (a.outrui と共有ライブラリの rui + aib + air) は、シンボリック情報を利用できないときには抑止されます。この動作は、suppressunsuppress によって変更できます。


clear コマンド

clear コマンドは、ブレークポイントをクリアします。ネイティブモードでだけ有効です。

引数 inclassinmethodinfile、または infunction を付けた stoptrace、または when コマンドを使用して作成したイベントハンドラは、ブレークポイントセットを作成します。clear コマンドで指定した line がこれらのブレークポイントのどれかに一致した場合、そのブレークポイントだけがクリアされます。特定のセットに属するブレークポイントをこの方法でクリアしたあと、そのブレークポイントを再び使用可能にすることはできません。ただし、関連するイベントハンドラをいったん使用不可にしたあと使用可能にすると、すべてのブレークポイントが再設定されます。

構文

clear

現在の停止点にあるブレークポイントをすべてクリアします。

clear line

line にあるブレークポイントすべてをクリアします。

clear filename:line

filenameline にあるブレークポイントをすべてクリアします。

ここで

line は、ソースコード行の番号です。

filename は、ソースコードファイルの名前です。

collector コマンド

collector コマンドは、パフォーマンスアナライザによって分析するパフォーマンスデータを収集します。ネイティブモードでだけ有効です。

構文

collector command_list

1 個または複数の collector コマンドを指定します。

collector archive options

終了したときに実験をアーカイブ化するモードを指定します (collector archive コマンド」参照)。

collector dbxsample options

dbx がターゲットプロセスを停止したときのサンプルの収集を制御します (collector dbxsample コマンド」参照)。

collector disable

データ収集を停止して現在の実験をクローズします (collector disable コマンド」参照)。

collector enable

コレクタを使用可能にして新規の実験をオープンします (collector enable コマンド」参照)。

collector heaptrace options

ヒープトレースデータの収集を有効または無効にします (collector heaptrace コマンド」参照)。

collector hwprofile options

ハードウェアカウンタプロファイル設定値を指定します (collector hwprofile コマンド」参照)。

collector limit options

記録されているプロファイルデータの量を制限します (collector limit コマンド」参照)。

collector mpitrace options

MPI トレースデータの収集を有効または無効にします (collector mpitrace コマンド」参照)。

collector pause

パフォーマンスデータの収集は停止しますが、実験はオープン状態のままとします (collector pause コマンド」参照)。

collector profile options

呼び出しスタックプロファイルデータを収集するための設定値を指定します (collector profile コマンド」参照)。

collector resume

一時停止後、パフォーマンスデータの収集を開始します (collector resume コマンド」参照)。

collector sample options

標本設定値を指定します (collector sample コマンド」参照)。

collector show options

現在のコレクタ設定値を表示します (collector show コマンド」参照)。

collector status

現在の実験に関するステータスを照会します (collector status コマンド」参照)。

collector store options

ファイルの制御と設定値を実験します (collector store コマンド」参照)。

collector synctrace options

スレッド同期待ちトレースデータの設定値を指定します (collector synctrace コマンド」参照)。

collector tha options

スレッドアナライザデータ収集の設定値を指定します (collector tha コマンド」参照)。

collector version

データ収集に使用される libcollector.so のバージョンを 報告します (collector version コマンド」参照)。

ここで

options は、各コマンドで指定できる設定値です。

データの収集を開始するには、collector enable と入力します。

データ収集を停止するには、collector disable と入力します。

collector archive コマンド

collector archive コマンドは、実験が終了したときに使用するアーカイブモードを指定します。

構文

collector archive on|off|copy

デフォルトでは通常のアーカイブが使用されます。アーカイブしない場合は、off を指定します。ロードオブジェクトを実験にコピーするには、copy を指定します。

collector dbxsample コマンド

collector dbxsample コマンドは、プロセスが dbx によって停止された場合に、標本を記録するかどうかを指定します。

構文

collector dbxsample on|off

デフォルトでは、プロセスが dbx によって停止された場合に標本を収集します。収集しない場合は、off を指定します。

collector disable コマンド

collector disable コマンドは、データ収集を停止して現在の実験をクローズします。

構文

collector disable

collector enable コマンド

collector enable コマンドは、コレクタを使用可能にして新規の実験をオープンします。

構文

collector enable

collector heaptrace コマンド

collector heaptrace コマンドは、ヒープのトレース (メモリーの割り当て) データの収集オプションを指定します。

構文

collector heaptrace on|off

デフォルトでは、ヒープのトレースデータは収集されません。このデータを収集するには、on を指定します。

collector hwprofile コマンド

collector hwprofile コマンドは、ハードウェアカウンタオーバーフロープロファイルデータ収集のオプションを指定します。

構文

collector hwprofile on|off

デフォルトの場合、ハードウェアカウンタオーバーフロープロファイルデータは収集されません。このデータを収集するには、on を指定します。

collector hwprofile list

利用できるカウンタのリストを出力します。

collector hwprofile counter name interval [name2 interval2]

ハードウェアカウンタ名と間隔を指定します。

ここで

name は、ハードウェアカウンタの名前です。

interval は、ミリ秒単位による収集間隔です。

name2 は、第 2 ハードウェアカウンタの名前です。

interval2 は、ミリ秒単位による収集間隔です。

ハードウェアカウンタはシステム固有であるため、どのようなカウンタを利用できるかはご使用のシステムによって異なります。多くのシステムでは、ハードウェアカウンタオーバーフロープロファイル機能をサポートしていません。こういったマシンの場合、この機能は使用不可になっています。

collector limit コマンド

collector limit コマンドは、実験ファイルのサイズの上限を指定します。

構文

collector limit value

ここで

value - メガバイト単位。記録されているプロファイルデータの量を制限します。制限に達すると、それ以上のプロファイルデータは記録されませんが、実験はオープンのままで標本ポイントの記録は継続します。記録されるレコードのデフォルトの制限値は 2000M バイトです。

collector mpitrace コマンド

collector mpitrace コマンドは、MPI のトレースデータの収集オプションを指定します。

構文

collector mpitrace on|off

デフォルトでは、MPI のトレースデータは収集されません。このデータを収集するには、on を指定します。

collector pause コマンド

collector pause コマンドはデータ収集を停止しますが、現在の実験はオープン状態のままとします。コレクタが一時停止している間、標本ポイントは記録されません。サンプルは一時停止の前に生成され、再開直後に別のサンプルが生成されます。collector resume コマンドを使用すると、データ収集を再開できます (collector resume コマンド」参照)。

構文

collector pause

collector profile コマンド

collector profile コマンドは、プロファイルデータ収集のオプションを指定します。

構文

collector profile on|off

プロファイルデータ収集モードを指定します。

collector profile timer interval

プロファイルタイマー時間を固定ポイントまたは浮動小数点で、オプションの m (ミリ秒の場合) または u (マイクロ秒の場合) を付けて指定します。

collector resume コマンド

collector resume コマンドは、collector pause コマンドによる一時停止のあと、データ収集を再開します (collector pause コマンド」参照)。

構文

collector resume

collector sample コマンド

collector sample コマンドは、標本モードと標本間隔を指定します。

構文

collector sample periodic|manual

標本モードを指定します。

collector sample period seconds

標本間隔を seconds 単位で指定します。

collector sample record [name]

name (オプション) を指定して標本を記録します。

ここで

seconds は、標本間隔の長さです。

name は、標本の名前です。

collector show コマンド

collector show コマンドは、1 個または複数のオプションカテゴリの設定値を表示します。

構文

collector show

すべての設定値を表示します。

collector show all

すべての設定値を表示します。

collector show archive

すべての設定値を表示します。

collector show profile

呼び出しスタックプロファイル設定値を表示します。

collector show synctrace

スレッド同期待ちトレース設定値を表示します。

collector show hwprofile

ハードウェアカウンタデータ設定値を表示します。

collector show heaptrace

ヒープトレースデータ設定値を表示します。

collector show limit

実験サイズの上限を表示します。

collector show mpitrace

MPI トレースデータ設定値を表示します。

collector show sample

標本設定値を表示します。

collector show store

ストア設定値を表示します。

collector show tha

スレッドアナライザのデータ設定値を表示します。

collector status コマンド

collector status コマンドは、現在の実験のステータスについて照会します。

構文

collector status

collector store コマンド

collector store コマンドは、実験が保存されているディレクトリとファイルの名前を指定します。

構文

collector store directory pathname

実験が保存されているディレクトリを指定します。

collector store filename filename

実験ファイル名を指定します。

collector store group string

実験グループ名を指定します。

ここで

pathname は、実験を保存するディレクトリのパス名です。

filename は、実験ファイルの名前です。

string は、実験グループの名前です。

collector synctrace コマンド

collector synctrace コマンドは、同期待ちトレースデータの収集オプションを指定します。

構文

collector synctrace on|off

デフォルトの場合、スレッド同期待ちトレースデータは収集されません。このデータを収集するには、on を指定します。

collector synctrace threshold microseconds

しきい値をマイクロ秒単位で指定します。デフォルト値は 100 です。

collector synctrace threshold calibrate

しきい値は、自動的に算出されます。

ここで

microseconds は、この値未満であるときに同期待ちイベントが破棄されるしきい値です。

collector tha コマンド

構文

collector tha on|off

デフォルトでは、スレッドアナライザのデータは収集されません。このデータを収集するには、on を指定します。

collector version コマンド

collector version コマンドは、データ収集に使用される libcollector.so のバージョンを報告します。

構文

collector version

cont コマンド

cont コマンドは、プロセスの実行を継続します。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

cont

実行を継続します。MT プロセスのすべてのスレッドが再開します。Ctrl-C を使用すると、プログラムの実行が停止します。

cont ... -sig signal

シグナル signal で実行を継続します。

cont ... id

継続するスレッドまたは LWP を id で指定します。

cont at line [id]

line で実行を継続します。アプリケーションがマルチスレッドの場合には id が必須です。

cont ... -follow parent|child|both

dbxfollow_fork_mode 環境変数を stop に設定した場合、このオプションを使用して後続のプロセスを選択します。both は Oracle Solaris Studio IDE でのみ有効です。

dalias コマンド

dalias コマンドは、dbx 形式の (csh 形式) 別名を定義します。ネイティブモードでだけ有効です。

構文

dalias

(dbx alias) 現在定義されている別名をすべて一覧表示します。

dalias name

別名 name の定義がある場合には、それを表示します。

dalias name definition

namedefinition の別名として定義します。definition には空白を含めることができます。セミコロンまたは改行によって定義を終端させます。

ここで

name は、別名の名前です。

definition は、別名の定義です。

dbx は、別名に通常使用される次の csh 履歴置換メタ構文を受け付けます。

!: <n>

!-<n>

!^

!$

!*

通常、! の前にはバックスラッシュを付ける必要があります。次に例を示します。

dalias goto "stop at \!:1; cont; clear"

詳細については、csh(1) マニュアルページを参照してください。

dbx コマンド

dbx コマンドは dbx を起動します。

ネイティブモードの構文

dbx options program_name

program_name をデバッグします。

dbx options program_name core

コアファイル core によって program_name をデバッグします。

dbx options program_name process_id

プロセス ID process_id を持つ program_name をデバッグします。

dbx options - process_id

プロセス ID process_id をデバッグします。dbx は、/proc によってプログラムを見つけます。

dbx options - core

コアファイル core を使用してデバッグします。「debug コマンド」」も参照してください。

dbx options -r program_name arguments

引数 arguments を付けて program_name を実行します。異常終了した場合は program_name のデバッグを開始します。そうでない場合はそのまま終了します。

ここで

program_name は、デバッグ対象プログラムの名前です。

process_id は、動作中のプロセスのプロセス ID です。

arguments は、プログラムに渡す引数です。

options は、「オプション」に挙げられているオプションです。

Java モードの構文

dbx options program_name{.class | .jar}

program_name をデバッグします。

dbx options program_name{.class | .jar} process_id

プロセス ID process_id を持つ program_name をデバッグします。

dbx options - process_id

プロセス ID process_id をデバッグします。dbx は、/proc によってプログラムを見つけます。

dbx options -r program_name{.class | .jar} arguments

引数 arguments を付けて program_name を実行します。異常終了した場合は program_name のデバッグを開始します。そうでない場合はそのまま終了します。

ここで

program_name は、デバッグ対象プログラムの名前です。

process_id は、動作中のプロセスのプロセス ID です。

arguments は、プログラム (JVM ソフトウェアではない) に渡す引数です。

options は、「オプション」に挙げられているオプションです。

オプション

ネイティブモード、Java モードともに、options には次を使用できます。

-B

すべてのメッセージを抑止します。デバッグするプログラムの exit コードを返します。 

-c commands

commands を実行してから入力を要求します。

-C

実行時検査ライブラリをあらかじめ読み込みます (check コマンド」参照)。

-d

-s を付けて使用した場合、読み取った file を削除します。

-e

入力コマンドを表示します。 

-f

コアファイルが一致しない場合でも、コアファイルの読み込みを強制します。 

-h

dbx のヘルプを出力します。

-I dir

dirpathmap セットに追加します (pathmap コマンド」参照)。

-k

キーボードの変換状態を保存および復元します。 

-q

スタブの読み込みについてのメッセージの出力を抑止します。 

-r

プログラムを実行します。プログラムが正常に終了した場合は、そのまま終了します。 

-R

dbx の README ファイルを出力します。

-s file

file/ current_directory/.dbxrc または $HOME/ .dbxrc の代わりに起動ファイルとして使用します。

-S

初期設定ファイル /installation_directory /lib/dbxrc の読み込みを抑止します。

-V

dbx のバージョンを出力します。

-w n

where コマンドで n 個のフレームをスキップします。

-x exec32

64 ビット OS の実行されているシステムでデフォルトで実行される 64 ビット dbx バイナリではなく、32 ビット dbx バイナリを実行します。

--

オプションのリストの最後を示します。プログラム名がダッシュで始まる場合は、これを使用します。 

dbxenv コマンド

dbxenv コマンドは、dbx 環境変数の表示や設定を行います。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

dbxenv

dbx 環境変数の現在の設定値を表示します。

dbxenv environment_variable setting

environment_variablesetting を設定します。

ここで

environment_variabledbx 環境変数です。

setting は、その変数の有効な設定値です。

debug コマンド

debug コマンドは、デバッグ対象プログラムの表示や変更を行います。ネイティブモードでは、指定したアプリケーションを読み込み、アプリケーションのデバッグを開始します。Java モードでは、指定したアプリケーションを読み込み、クラスファイルが存在するかどうかを確認し、アプリケーションのデバッグを開始します。

ネイティブモードの構文

debug

デバッグ対象プログラムの名前と引数を出力します。

debug program_name

プロセスやコアなしで program_name のデバッグを開始します。

debug -c core program_name

コアファイル core による program_name のデバッグを開始します。

debug -p process_id program_name

プロセス ID process_id を持つ program_name のデバッグを開始します。

debug program_name core

コアファイル core による program のデバッグを開始します。program_name には - を指定できます。dbx は、コアファイルから実行可能ファイルの名前を取り出そうとします。詳細については、「既存のコアファイルのデバッグ」を参照してください。

debug program_name process_id

プロセス ID process_id を持つ program_name のデバッグを開始します。program_name には - を指定できます。dbx/proc を使用してプログラムを見つけます。

debug -f ...

コアファイルが一致しない場合でも、コアファイルの読み込みを強制します。

debug -r ...

-r オプションを使用すると、dbxdisplaytracewhen、および stop コマンドをすべて保持します。-r オプションを使用しない場合は、delete allundisplay O が暗黙に実行されます。

debug -clone ...

-clone オプションは新たな dbx プロセスの実行を開始するので、複数のプロセスを同時にデバッグできます。Oracle Solaris Studio IDE で使用する場合にのみ有効です。

debug -clone

何もデバッグしない dbx プロセスを新たに開始します。Oracle Solaris Studio IDE で使用する場合にのみ有効です。

debug [options] -- program_name

program_name がダッシュで始まる場合でも、program_name のデバッグを開始します。

ここで

core は、コアファイルの名前です。

options は、「オプション」に挙げられているオプションです。

process_id は、実行中プロセスのプロセス ID です。

program_name は、プログラムのパス名です。

debug でプログラムを読み込むと、リーク検査とアクセス検査はオフになります。check コマンドを使用すれば、これらの検査を使用可能にできます (check コマンド」参照)。

Java モードの構文

debug

デバッグ対象プログラムの名前と引数を出力します。

debug program_name [.class | .jar]

プロセスなしで program_name のデバッグを開始します。

debug -p process_id program_name [.class| .jar]

プロセス ID process_id を持つ program_name のデバッグを開始します。

debug program_name [.class | .jar] process_id

プロセス ID process_id を持つ program_name のデバッグを開始します。program_name には - を指定できます。dbx/proc を使用してプログラムを見つけます。

debug -r ...

-r オプションを使用すると、dbxwatchdisplaytracewhenstop のコマンドをすべて保持します。-r オプションを使用しない場合は、delete allundisplay 0 が暗黙に実行されます。

debug -clone ...

-clone オプションは新たな dbx プロセスの実行を開始するので、複数のプロセスを同時にデバッグできます。Oracle Solaris Studio IDE で使用する場合にのみ有効です。

debug -clone

何もデバッグしない dbx プロセスを新たに開始します。Oracle Solaris Studio IDE で使用する場合にのみ有効です。

debug [options] -- program_name{.class | .jar}

program_name がダッシュで始まる場合でも、program_name のデバッグを開始します。

ここで

file_name は、ファイルの名前です。

options は、「オプション」に挙げられているオプションです。

process_id は、動作中のプロセスのプロセス ID です。

program_name は、プログラムのパス名です。

オプション

-c commands

commands を実行してから入力を要求します。

-d

-s と併せて指定した場合に、読み込み後に file_name で指定したファイルを削除します。

-e

入力コマンドを表示します。

-I directory_name

directory_namepathmap セットに追加します (pathmap コマンド」参照)。

-k

キーボードの変換状態を保存および復元します。

-q

スタブの読み込みについてのメッセージの出力を抑止します。

-r

プログラムを実行します。プログラムが正常に終了した場合は、そのまま終了します。

-R

dbx の README ファイルを出力します。

-s file

filecurrent_directory /.dbxrc または $HOME/.dbxrc の代わりに起動ファイルとして使用します。

-S

初期設定ファイル /installation_directory/lib/dbxrc の読み込みを抑止します。

-V

dbx のバージョンを出力します。

-w n

where コマンドで n 個のフレームをスキップします。

--

オプションのリストの最後を示します。プログラム名がダッシュで始まる場合は、これを使用します。

delete コマンド

delete コマンドは、ブレークポイントなどのイベントを削除します。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

delete [-h] handler_id ...

tracewhen、または stop コマンドを任意の handler_id から削除します。非表示のハンドラを削除するには、-h オプションを付ける必要があります。

delete [-h] O | all | -all

常時隠しハンドラを除き、trace コマンド、when コマンド、stop コマンドをすべて削除します。-h を指定すると、隠しハンドラも削除されます。

delete -temp

一時ハンドラをすべて削除します。

delete $firedhandlers

最後の停止を引き起こしたハンドラすべてを削除します。

ここで

handler_id は、ハンドラの識別子です。

detach コマンド

detach コマンドは、dbx の制御からターゲットプロセスを解放します。

ネイティブモードの構文

detach

ターゲットから dbx を切り離し、保留状態のシグナルがある場合はそれらのシグナルを取り消します。

detach -sig signal

指定の signal を転送している間、切り離します。

detach -stop

dbx をターゲットから切り離してプロセスを停止状態にします。このオプションを使用すると、占有アクセスによってブロックされるほかの /proc ベースのデバッグツールを一時的に適用することができます。例については、「プロセスから dbx を切り離す」を参照してください。

ここで

signal はシグナル名です。

Java モードの構文

detach

ターゲットから dbx を切り離し、保留状態のシグナルがある場合はそれらのシグナルを取り消します。

dis コマンド

dis コマンドは、マシン命令を逆アセンブルします。ネイティブモードでだけ有効です。

構文

dis [-a] address [/count]

アドレス address を始点とし、count 命令 (デフォルトは 10) を逆アセンブルします。

dis address1, address2

address1 から address2 までの命令を逆アセンブルします。

dis

+ の値を始点とし、10 個の命令を逆アセンブルします (examine コマンド」参照)。

ここで

address は、逆アセンブルを開始するアドレスです。デフォルトの address 値は、前にアセンブルされた最後のアドレスの次のアドレスになります。この値は、examine コマンド (examine コマンド」参照) によって共有されます。

address1 は、逆アセンブルを開始するアドレスです。

address2 は、逆アセンブルを停止するアドレスです。

count は、逆アセンブル対象命令の数です。count のデフォルト値は 10 です。

オプション

-a

関数のアドレスと使用した場合、関数全体を逆アセンブルします。パラメータなしで使用した場合、現在の関数に残りがあると、その残りを逆アセンブルします。

display コマンド

ネイティブモードでは、display コマンドはすべての停止ポイントで式を再評価して出力します。Java モードでは、display コマンドはすべての停止ポイントで式、局所変数、パラメータを評価して出力します。オブジェクト参照は、1 つのレベルに展開され、配列は項目と同様に出力されます。

式はコマンドを入力したときに現在のスコープで構文分析され、すべての停止ポイントで再評価されます。式は入力時に分析されるため、式の正確さをすぐに確認できます。

dbx を Sun Studio 12 リリース、Sun Studio 12 Update 1 リリース、または Oracle Solaris Studio 12.2 リリースの IDE で実行している場合、display expression コマンドは watch $(which expression) コマンドのように効果的に動作します。

ネイティブモードの構文

display

表示されている式のリストを表示します。

display expression, ...

expression, ... の値を、すべての停止ポイントで表示します。expression は入力時に分析されるため、式の正確さをすぐに確認できます。

display [-r|+r|-d|+d|-S|+S|-p|+p|-L|-fformat |-Fformat|--] expression, ...

フラグの意味については、print コマンド」を参照してください。

ここで

expression は、有効な式です。

format は、式の出力時に使用する形式です。詳細については、print コマンド」を参照してください。

Java モードの構文

display

表示される変数およびパラメータのリストを出力します。

display expression| identifier, ...

すべての停止ポイントで、表示される変数およびパラメータ identifier, ... の値を表示します。

display [-r|+r|-d|+d|-p|+p|-fformat|-F format|-Fformat|--] expression |identifier, ...

フラグの意味については、print コマンド」を参照してください。

ここで

class_name は、Java クラス名で、パッケージのパス (. (ピリオド) を修飾子として使用。たとえば test1.extra.T1.Inner) またはフルパス名 (# 記号で始まり、/ (スラッシュ) や $ 記号を修飾子として使用。たとえば #test1/extra/T1$Inner) のいずれかで指定します。修飾子 $ を使用する場合は、class_name を引用符で囲みます。

expression は、有効な Java の式です。

field_name は、クラス内のフィールド名です。

format は、式の出力時に使用する形式です。詳細については、print コマンド」を参照してください。

identifierthis を含む局所変数またはパラメータで、現在のクラスインスタンス変数 (object_name.field_name) またはクラス (静的) 変数 (class_name.field_name) です。

object_name は、Java オブジェクトの名前です。

down コマンド

down コマンドは、呼び出しスタックを下方向に移動します (main から遠ざかる)。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

down

呼び出しスタックを 1 レベル下方向に移動します。

down number

呼び出しスタックを number レベルだけ下方向に移動します。

down -h [number]

呼び出しスタックを下方向に移動しますが、隠しフレームをとばすことはしません。

ここで

number は、呼び出しスタックレベルの数です。

dump コマンド

dump コマンドは、手続きの局所変数すべてを出力します。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

dump

現在の手続きの局所変数すべてを出力します。

dump procedure

procedure の局所変数をすべて出力します。

ここで

procedure は、手続きの名前です。

edit コマンド

edit コマンドは、ソースファイルに対して $EDITOR を起動します。ネイティブモードでだけ有効です。

dbx が Oracle Solaris Studio IDE で動作していない場合、edit コマンドは $EDITOR を使用します。そうでない場合は、該当するファイルを表示することを指示するメッセージを IDE に送信します。

構文

edit

現在のファイルを編集します。

edit file_name

指定のファイル file_name を編集します。

edit procedure

関数または手続き procedure が入っているファイルを編集 します。

ここで

file_name は、ファイルの名前です。

procedure は、関数または手続きの名前です。

examine コマンド

examine コマンドは、メモリーの内容を表示します。ネイティブモードでだけ有効です。

構文

examine [address] [/[count] [format]]

address を始点とし、count 個の項目のメモリー内容を形式 format で表示します。

examine address1, address2 [/[format]]

address1 から address2 までのメモリー内容 (address1、address2 を含む) を形式 format で表示します。

examine address= [format]

アドレスを (アドレスの内容ではなく) 指定の形式で表示します。

直前に表示された最後のアドレスを示す + (省略した場合と同じ) を address として使用できます。

x は、examine の事前定義別名です。

ここで

address は、メモリーの内容の表示を開始するアドレスです。デフォルトの address 値は、内容が最後に表示されたアドレスの次のアドレスになります。この値は dis コマンド (dis コマンド」参照) によって共有されます。

address1 は、メモリーの内容の表示を開始するアドレスです。

address2 は、メモリーの内容の表示を停止するアドレスです。

count は、メモリーの内容を表示するアドレスの数です。count のデフォルト値は 1 です。

format は、メモリーアドレスの内容を表示する形式です。最初の examine コマンドのデフォルトの形式は X (16 進数) で、後続の examine コマンドに対して前の examine コマンドに指定されている形式です。次に示す値は format に対して常に有効です。

o,O

8 進数 (2 または 4 バイト)

x,X

16 進数 (2 または 4 バイト)

b

8 進数 (1 バイト)

c

文字

w

ワイド文字

s

文字列

W

ワイド文字列

f

16 進浮動小数点数 (4 バイト、6 桁の精度)

F

16 進浮動小数点数 (8 バイト、14 桁の精度)

g

F と同じです。

E

16 進浮動小数点数 (16 バイト、14 桁の精度)

ld,lD

10 進数 (4 バイト、D と同じ)

lo,lO

8 進数 (4 バイト、O と同じ)

lx,lX

16 進数 (4 バイト、X と同じ)

Ld,LD

10 進数 (8 バイト)

Lo,LO

8 進数 (8 バイト)

Lx,LX

16 進数 (8 バイト)

exception コマンド

exception コマンドは、現在の C++ 例外の値を出力します。ネイティブモードでだけ有効です。

構文

exception [-d | +d]

現在の C++ 例外がある場合、その値を出力します。

-d フラグの意味については、print コマンド」を参照してください。

exists コマンド

exists コマンドは、シンボル名の有無をチェックします。ネイティブモードでだけ有効です。

構文

exists name

現在のプログラム内で name が見つかった場合は 0、name が見つからなかった場合は 1 を返します。

ここで

name は、シンボルの名前です。

file コマンド

file コマンドは、現在のファイルの表示や変更を行います。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

file

現在のファイルの名前を出力します。

file file_name

現在のファイルを変更します。

ここで

file_name は、ファイルの名前です。

files コマンド

ネイティブモードでは、files コマンドは正規表現に一致したファイル名を表示します。Java モードでは、files コマンドは dbxで認識されているすべての Java ソースファイルのリストを表示します。Java ソースファイルが .class または .jar ファイルのように同一のディレクトリにない場合、$JAVASRCPATH 環境変数を設定しない限り dbx はそれらを発見できない場合があります (「Java ソースファイルの格納場所の指定」を参照)。

ネイティブモードの構文

files

現在のプログラムに対してデバッグ情報を提供したファイルすべての名前を一覧表示します (-g によってコンパイルされたもの)。

files regular_expression

指定の正規表現に一致し -g によってコンパイルされたファイルすべての名前を一覧表示します。

ここで

regular_expression は、正規表現です。

次に例を示します。

(dbx) files ^r
myprog:
retregs.cc
reg_sorts.cc
reg_errmsgs.cc
rhosts.cc

Java モードの構文

files

dbx で認識されているすべての Java ソースファイルの名前を表示します。

fix コマンド

fix コマンドは、修正されたソースファイルを再コンパイルし、修正された関数をアプリケーションに動的にリンクします。ネイティブモードでだけ有効です。Linux プラットフォームでは有効ではありません。

構文

fix

現在のファイルを修正します。

fix file_name file_name

リストにあるファイルを修正します。

fix -f

ソースに手が加えられていない場合にも、ファイルの修正を強制します。

fix -a

手が加えられたファイルすべてを修正します。

fix -g

-O フラグを取り除き、-g フラグを追加します。

fix -c

コンパイル行を出力します (dbx による使用を目的として内部的に追加されたオプションの一部が含まれることがある)。

fix -n

compile/link コマンドを実行しません (-v を付けて使用)。

fix -v

冗長モード (dbx 環境変数 fix_verbose の設定より優先されます)。

fix +v

簡易モード (dbx 環境変数 fix_verbose の設定より優先されます)。

fixed コマンド

fixed コマンドは、固定ファイルすべての名前を一覧表示します。ネイティブモードでだけ有効です。

構文

fixed

fortran_module コマンド

fortran_modules コマンドは現在のプログラムの Fortran モジュール、または、あるモジュール内の関数または変数を一覧表示します。

構文

fortran_modules

現在のプログラムの、すべての Fortran モジュールを一覧表示します。

fortran_modules -f module_name

指定したモジュールのすべての関数を一覧表示します。

fortran_modules -v module_name

指定したモジュールのすべての変数を一覧表示します。

frame コマンド

frame コマンドは、現在のスタックフレーム番号の表示や変更を行います。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

frame

現在のフレームのフレーム番号を表示します。

frame [-h] number

現在のフレームとしてフレーム number を設定します。

frame [-h] +[number]

number 個のフレームだけスタックを上方向に移動します。デフォルトは 1 です。

frame [-h] -[number]

number 個のフレームだけスタックを下方向に移動します。デフォルトは 1 です。

-h

フレームが隠されている場合でもフレームに進みます。

ここで

number は、呼び出しスタック内のフレームの番号です。

func コマンド

ネイティブモードでは、func コマンドは現在の関数を表示または変更します。Java モードでは、func コマンドは現在のメソッドを表示または変更します。

ネイティブモードの構文

func

現在の関数の名前を出力します。

func procedure

現在の関数を関数または手続き procedure に変更します。

ここで

procedure は、関数または手続きの名前です。

Java モードの構文

func

現在の関数の名前を出力します。

func [class_name.] method_name [(parameters)]

現在の関数をメソッド method_name に変更します。

ここで

class_name は、Java クラス名で、パッケージのパス (. (ピリオド) を修飾子として使用。たとえば test1.extra.T1.Inner) またはフルパス名 (# 記号で始まり、/ (スラッシュ) や $ 記号を修飾子として使用。たとえば #test1/extra/T1$Inner) のいずれかで指定します。修飾子 $ を使用する場合は、class_name を引用符で囲みます。

method_name は、Java メソッドの名前です。

parameters は、メソッドのパラメータです。

funcs コマンド

funcs コマンドは、特定の正規表現に一致する関数名をすべて一覧表示します。ネイティブモードでだけ有効です。

構文

funcs

現在のプログラム内の関数すべてを一覧表示します。

funcs [-f file_name] [-g] [regular_expression]

-f file_name を指定すると、ファイル内の関数すべてが表示されます。-g を指定すると、デバッグ情報を持つ関数すべてが表示されます。file_name.o で終わる場合、コンパイラによって自動的に生成された関数を含むすべての関数がリストされます。そうでない場合、ソースコードにある関数のみがリストされます。

regular_expression を指定すると、この正規表現に一致する関数すべてが表示されます。

ここで

file_name は、一覧表示対象の関数が入っているファイルの名前です。

regular_expression は、一覧表示対象の関数が一致する正規表現です。

次に例を示します。


(dbx) funcs [vs]print
”libc.so.1”isprint
”libc.so.1”wsprintf
”libc.so.1”sprintf
”libc.so.1”vprintf
”libc.so.1”vsprintf

gdb コマンド

gdb コマンドは、gdb コマンドセットをサポートします。ネイティブモードでだけ有効です。

構文

gdb on | off

gbd on を使用すると、dbx が gdb コマンドを理解し受け付ける gdb コマンドモードに入ります。gdb コマンドモードを終了し dbx コマンドモードに戻るには、gdb off と入力します。dbx コマンドは gdb コマンドモードでは受け付けられません。gdb コマンドは dbx モードでは受け付けられません。ブレークポイントなどのデバッグ設定は、コマンドモードの種類にかかわらず保持されます。

このリリースでは、次の gdb コマンドをサポートしていません。

handler コマンド

handler コマンドは、イベントハンドラを変更します (使用可能や使用不可にするなど)。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

ハンドラは、デバッグセッションで管理する必要があるイベントそれぞれについて作成されます。tracestopwhen の各コマンドは、ハンドラを作成します。これらのコマンドはそれぞれ、ハンドラ ID と呼ばれる番号を返します (handler_id)。handlerstatusdelete の各コマンドは、一般的な方法でハンドラの操作やハンドラ情報の提供を行います。

構文

handler -enable handler_id ...

特定のハンドラを使用可能にし、全ハンドラを示す all を handler_id として指定します。

handler -disable handler_id ...

特定のハンドラを使用不可にし、全ハンドラを示す all を handler_id として指定します。handler_id の代わりに $firedhandlers を使用すると、最後の停止を引き起こしたハンドラが使用不可となります。

handler -count handler_id

特定のハンドラのトリップカウンタの値を出力します。

handler -count handler_id new_limit

特定のイベントに対し、新たなカウント制限値を設定します。

handler -reset handler_id

特定のハンドラのトリップカウンタをリセットします。

ここで

handler_id は、ハンドラの識別子です。

hide コマンド

hide コマンドは、特定の正規表現に一致するスタックフレームを隠します。ネイティブモードでだけ有効です。

構文

hide

現在有効であるスタックフレームフィルタを一覧表示します。

hide regular_expression

regular_expression に一致するスタックフレームを隠しま す。正規表現は関数名またはロードオブジェクトの名前を表し、sh または ksh の正規表現スタイルをとります。

ここで

regular_expression は、正規表現です。

ignore コマンド

ignore コマンドは、指定のシグナルを捕獲しないように dbx プロセスに指示します。ネイティブモードでだけ有効です。

シグナルを無視すると、プロセスがそのシグナルを受信しても dbx が停止しなくなります。

構文

ignore

無視するシグナルのリストを出力します。

ignore number ...

number の番号のシグナルを無視します。

ignore signal ...

signal によって名前を付けられたシグナルを無視します。 SIGKILL を捕獲したり無視したりすることはできません。

ここで

number は、シグナルの番号です。

signal はシグナル名です。

import コマンド

import コマンドは、dbx コマンドライブラリからコマンドをインポートします。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

import pathname

dbx コマンドライブラリ pathname からコマンドをインポートします。

ここで

pathname は、dbx コマンドライブラリのパス名です。

intercept コマンド

intercept コマンドは、指定タイプ (C++ のみ) の (C++ 例外) を送出します。ネイティブモードでだけ有効です。

送出された例外の種類が阻止リストの種類と一致した場合、その例外の種類が除外リストの種類とも一致した場合を除いて、dbx は停止します。一致するものがない送出例外は、「処理されない」送出と呼ばれます。送出元関数の例外仕様に一致しない送出例外は、「予期されない」送出と呼ばれます。

処理されない送出と予期されない送出は、デフォルト時に阻止されます。

構文

intercept -x excluded_typename [, excluded_typename ...]

種類が excluded_typename の送出を阻止リストに追加します。

intercept -a[ll] -x excluded_typename [, excluded_typename...]

excluded_typename 以外のすべての種類の送出を阻止リストに追加します。

intercept -s[et] [intercepted_typename [, intercepted_typename ...]] [-x excluded_typename [, excluded_typename]]

インターセプトリストと除外リストの両方をクリアし、リストを指定した種類のみを送出する阻止または除外に設定します。

intercept

阻止対象の型を一覧表示します。

ここで

included_typename および excluded_typename は、List <int> unsigned short などの例外仕様です。

java コマンド

java コマンドは、dbx が JNI モードの場合に、指定したコマンドの Java バージョンを実行するように指定します。java コマンドは、指定したコマンドで Java の式の評価を実行するように設定します。また、該当する場合には、Java スレッドおよびスタックフレームを表示します。

構文

java command

ここで

command は、実行対象コマンドの名前および引数です。

jclasses コマンド

jclasses コマンドは、コマンド実行時に dbx で認識されているすべての Java クラスの名前を出力します。Java モードでだけ有効です。

プログラム内のまだ読み込まれていないクラスは出力されません。

構文

jclasses

dbx で認識されているすべての Java クラスの名前を出力します。

jclasses -a

システムクラスおよびその他の認識されている Java クラスを出力します。

joff コマンド

joffコマンドは、Java モードまたは JNI モードからネイティブモードに dbx を切り替えます。

構文

joff

jon コマンド

jon コマンドは、ネイティブモードから Java モードに dbx を切り替えます。

構文

jon

jpkgs コマンド

jpkgs コマンドは、コマンド実行時に dbx で認識されているすべての Java パッケージの名前を出力します。Java モードでだけ有効です。

プログラム内のまだ読み込まれていないパッケージは出力されません。

構文

jpkgs

kill コマンド

kill コマンドはプロセスにシグナルを送ります。ネイティブモードでだけ有効です。

構文

kill -l

既知の全シグナルの番号、名前、説明を一覧表示します。

kill

制御対象プロセスを終了します。

kill job ...

一覧表示されているジョブに SIGTERM シグナルを送ります。

kill -signal job ...

一覧表示されているジョブに指定のシグナルを送ります。

ここで

job としてプロセス ID を指定するか、または次のいずれかの方法で指定します。

%+

現在のジョブを終了します。

%-

直前のジョブを終了します。

%number

number の番号を持つジョブを終了します。

%string

string で始まるジョブを終了します。

%?string

string を含んでいるジョブを終了します。

signal はシグナル名です。

language コマンド

language コマンドは、現在のソース言語の表示や変更を行います。ネイティブモードでだけ有効です。

構文

language

dbx language_mode 環境変数 (dbx 環境変数の設定」参照) によって設定される現在の言語モードを出力します。言語モードが autodetect または main に設定されている場合は、式の解析と評価に使用されている現在の言語の名前も出力されます。

ここで

language は、c、c++、fortran、または fortran90 です。


注 –

c は、ansic の別名です。


line コマンド

line コマンドは、現在の行番号の表示や変更を行います。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

line

現在の行番号を表示します。

line number

現在の行番号として number を設定します。

line "file_name"

現在の行番号として行 1 を file_name に設定します。

line "file_name": number

現在の行番号として行 numberfile_name に設定します。

ここで

file_name は、変更対象の行番号があるファイルの名前です。ファイル名を囲んでいる "" は省略可能です。

number は、ファイル内の行の番号です。

line 100
line "/root/test/test.cc":100

list コマンド

list コマンドは、ソースファイルの行を表示します。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

デフォルト表示行数 N は、dbx 環境変数 output_list_size によって制御されます。

構文

list

N 行を一覧表示します。

list number

行番号 number を表示します。

list +

次の N 行を一覧表示します。

list +n

次の n 行を一覧表示します。

list -

直前の N 行を一覧表示します。

list -n

直前の n 行を一覧表示します。

list n1, n2

n1 から n2 までの行を一覧表示します。

list n1, +

n1 から n1 +N までを一覧表示します。

list n1, +n2

n1 から n1 + n2 までを一覧表示します。

list n1, -

n1-N から n1. までを一覧表示します。

list n1, -n2

n1 - n2 から n1 までを一覧表示します。

list function

function のソースの先頭を表示します。 list function は、現在のスコープを変更します。詳細については、「プログラムスコープ」を参照してください。

list file_name

ファイル file_name の先頭を表示します。

list file_name: n

ファイル filename を行 n から表示します。

ここで

file_name は、ソースコードファイルの名前です。

function は、表示対象の関数の名前です。

number は、ソースファイル内の行の番号です。

n は、表示対象の行数です。

n1 は、最初に表示する行の番号です。

n2 は、最後に表示する行の番号です。ファイルの末尾行を示す '$' を行番号の代わりに使用できます。コンマは省略可能です。

オプション

-i または -instr

ソース行とアセンブリコードを混合します。

-w または -wn

行または関数のまわりの N (または n) 行を一覧表示します。このオプションを '+' 構文または '-' 構文と併用したり 2 つの行番号が指定されているときに使用したりすることはできません。

-a

関数名と使用した場合、関数全体を一覧表示します。パラメータなしで使用した場合、現在の関数に残りがあると、その残りを一覧表示します。

list                      // list N lines starting at current line
list +5                      // list next 5 lines starting at current line
list -                    // list previous N lines
list -20                  // list previous 20 lines
list 1000                 // list line 1000
list 1000,$               // list from line 1000 to last line
list 2737 +24             // list line 2737 and next 24 lines
list 1000 -20             // list line 980 to 1000
list test.cc:33           // list source line 33 in file test.cc
list -w                   // list N lines around current line
list -w8 ”test.cc”func1   // list 8 lines around function func1
list -i 500 +10                // list source and assembly code for line
                500 to line 510

listi コマンド

listi コマンドは、ソース命令と逆アセンブリされた命令を表示します。ネイティブモードでだけ有効です。

詳細については、list コマンド」を参照してください。

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

lwp コマンド

lwp コマンドは、現在の LWP (軽量プロセス) の表示や変更を行います。ネイティブモードでだけ有効です。


注 –

lwp コマンドは Solaris プラットフォームでのみ利用可能です。


構文

lwp

現在の LWP を表示します。

lwp lwp_id

LWP lwp_id に切り替えます。

lwp -info

現在の LWP の名前、ホーム、およびマスクシグナルを表示します。

lwp [lwp_id] -setfp address_expression

fp レジスタに address_expression の値が入っていることを dbx に伝えます。デバッグするプログラムの状態は変更されません。assign $fp=... が利用できないコアファイルをデバッグします。-setfp オプションで設定されたフレームポインタは、実行を再開するときに元の値にリセットされます。

lwp [lwp_id] -resetfp

このコマンドより前で使用された lwp -setfp コマンドの設定を元に戻して、フレームポインタの論理値を現在のプロセスまたはコアファイルのレジスタ値から設定します。

ここで

lwp_id は軽量プロセスの識別子です。

コマンドに lwp_id とオプションの両方が使用された場合、対応するアクションは lwp_id によって指定された LWP に適用されますが、現在の LWP は変更されません。

-setfp-resetfp オプションは、LWP のフレームポインタ (fp) が破損した場合に便利です。このイベントでは、dbx は呼び出しスタックを適切に再構築できず、局所変数を評価できません。これらのオプションは assign $fp=... が利用できないコアファイルのデバッグ時に機能します。

fp への変更を、デバッグするアプリケーションに見えるようにするには、assign $fp=address_expression コマンドを使用します。

lwps コマンド

lwps コマンドは、プロセス内の LWP (軽量プロセス) すべてを一覧表示します。ネイティブモードでだけ有効です。


注 –

lwps コマンドは Solaris プラットフォームでのみ利用可能です。


構文

lwps

現在のプロセス内の LWP すべてを一覧表示します。

mmapfile コマンド

mmapfile コマンドは、コアダンプに存在しないメモリーマップファイルの内容を表示します。ネイティブモードでだけ有効です。

Solaris コアファイルには、読み取り専用のメモリーセグメントは含まれていません。実行可能な読み取り専用セグメント (つまりテキスト) は自動的に処理され、dbx は、実行可能ファイルと関連する共有オブジェクトを調べることによってこれらのセグメントに対するメモリーアクセスを解釈処理します。

構文

mmapfile mmapped_file address offset length

コアダンプに存在しないメモリーマップファイルの内容を表示します。

ここで

mmapped_file は、コアダンプ中にメモリーマップされたファイルのファイル名です。

address は、プロセスのアドレス空間の開始アドレスです。

length は、表示対象アドレス空間のバイト単位による長さです。

offset は、mmapped_file の開始アドレスまでのバイト単位によるオフセットです。

読み取り専用データセグメントは、アプリケーションメモリーがデータベースをマップしたときに通常発生します。次に例を示します。

caddr_t vaddr = NULL;
off_t offset = 0;
size_t = 10 * 1024;
int fd;
fd = open("../DATABASE", ...)
vaddr = mmap(vaddr, size, PROT_READ, MAP_SHARED, fd, offset);
index = (DBIndex *) vaddr;

デバッガによってメモリーとしてデータベースにアクセスできるようにするには、次を入力します。

mmapfile ../DATABASE $[vaddr] $[offset] $[size]

ここで、次を入力すれば、データベースの内容を構造的に表示させることができます。

print *index

module コマンド

module コマンドは、1 個または複数のモジュールのデバッグ情報を読み込みます。ネイティブモードでだけ有効です。

構文

module [-v]

現在のモジュールの名前を出力します。

module [-f] [-v] [-q] name

name というモジュールのデバッグ情報を読み込みます。

module [-f] [-v] [-q] -a

全モジュールのデバッグ情報を読み込みます。

ここで

name は、読み込み対象のデバッグ情報が関係するモジュールの名前です。

-a は、すべてのモジュールを指定します。

-f は、実行可能ファイルより新しいファイルの場合でもデバッグ情報の読み込みを強制します (使用にあたっては十分に注意してください)。

-v は、言語、ファイル名などを出力する冗長モードを指定します。

-q は、静止モードを指定します。

modules コマンド

modules コマンドは、モジュール名を一覧表示します。ネイティブモードでだけ有効です。

構文

modules [-v]

すべてのモジュールを一覧表示します。

modules [-v] -debug

デバッグ情報が入っているモジュールすべてを一覧表示します。

modules [-v] -read

すでに読み込まれたデバッグ情報が入っているモジュールの名前を表示します。

ここで

-v は、言語、ファイル名などを出力する冗長モードを指定します。

native コマンド

native コマンドは、dbx が Java モードの場合に、指定したコマンドのネイティブバージョンを実行するように指定します。コマンドの前に "native" を指定すると、dbx はそのコマンドをネイティブモードで実行します。つまり、式が C または C++ の式として解釈および表示され、一部のコマンドでは Java モードの場合と異なる出力が生成されます。

このコマンドは、Java コードをデバッグしていて、ネイティブ環境を調べる必要があるときに便利です。

構文

native command

ここで

command は、実行対象コマンドの名前および引数です。

next コマンド

next コマンドは、1 ソース行をステップ実行します (呼び出しをステップオーバー)。

dbx の環境変数 step_events (dbx 環境変数の設定」参照) は、ステップ実行中にブレークポイントが使用可能であるかどうかを制御します。

ネイティブモードの構文

next

1 行をステップ実行します (呼び出しをステップオーバー)。関数呼び出しがステップオーバーされるマルチスレッドプログラムの場合、デッドロック状態を避けるため、その関数呼び出し中は全 LWP (軽量プロセス) が暗黙に再開されます。非活動状態のスレッドをステップ実行することはできません。

next n

n 行をステップ実行します (呼び出しをステップオーバー)。

next ... -sig signal

ステップ実行中に指定のシグナルを引き渡します。

next ... thread_id

指定のスレッドをステップ実行します。

next ... lwp_id

指定の LWP をステップ実行します。関数をステップオーバーしたときに全 LWP を暗黙に再開しません。

ここで

n は、ステップ実行対象の行数です。

signal はシグナル名です。

thread_id は、スレッド ID です。

lwp_id は、LWP ID です。

明示的な thread_id または lwp_id が指定されている場合、next コマンドによる汎用のデッドロック回避は無効となります。

マシンレベルの呼び出しステップオーバーについては、nexti コマンド」も参照してください。


注 –

軽量プロセス (LWP) の詳細については、Solaris の『マルチスレッドのプログラミング』を参照してください。


Java モードの構文

next

1 行をステップ実行します (呼び出しをステップオーバー)。関数呼び出しがステップオーバーされるマルチスレッドプログラムの場合、デッドロック状態を避けるため、その関数呼び出し中は全 LWP (軽量プロセス) が暗黙に再開されます。非活動状態のスレッドをステップ実行することはできません。

next n

n 行をステップ実行します (呼び出しをステップオーバー)。

next ... thread_id

指定のスレッドをステップ実行します。

next ... lwp_id

指定の LWP をステップ実行します。関数をステップオーバーしたときに全 LWP を暗黙に再開しません。

ここで

n は、ステップ実行対象の行数です。

thread_id は、スレッド識別子です。

lwp_id は、LWP 識別子です。

明示的な thread_id または lwpid が指定されている場合、next コマンドによる汎用のデッドロック回避は無効となります。


注 –

軽量プロセス (LWP) の詳細については、Solaris の『マルチスレッドのプログラミング』を参照してください。


nexti コマンド

nexti コマンドは、1 マシン命令をステップ実行します (呼び出しをステップオーバー)。ネイティブモードでだけ有効です。

構文

nexti

マシン命令 1 個をステップ実行します (呼び出しをステップオーバー)。

nexti n

n 行をステップ実行します (呼び出しをステップオーバー)。

nexti -sig signal

ステップ実行中に指定のシグナルを引き渡します。

nexti ... lwp_id

指定の LWP をステップ実行します。

nexti ... thread_id

指定のスレッドが活動状態である LWP をステップ実行します。関数をステップオーバーしたときに全 LWP を暗黙に再開しません。

ここで、

n は、ステップ実行対象の命令数です。

signal はシグナル名です。

thread_id は、スレッド ID です。

lwp_id は、LWP ID です。

omp_loop コマンド

omp_loop コマンドは現在のループに関する説明を出力します。これには、スケジューリング (静的、動的、ガイド付き、自動、または実行時)、番号付きまたは番号なし、範囲、ステップ数または刻み幅、および繰り返し回数が含まれます。このコマンドは、ループを現在実行中のスレッドからしか発行できません。

構文

omp_loop

omp_pr コマンド

omp_pr コマンドは、現在の並列領域または指定された並列領域に関する説明を出力します。これには、親領域、並列領域の ID、チームのサイズ (スレッド数)、およびプログラムの場所 (プログラムのカウンタアドレス) が含まれます。

構文

omp_pr

現在の並列領域の説明を出力します。

omp_pr parallel_region_id

指定された並列領域の説明を出力します。このコマンドを実行しても、dbx は現在の並列領域を指定の並列領域に切り替えません。

omp_pr -ancestors

現在の並列領域から、現在の並列領域ツリーのルートに至るまで、パス上のすべての並列領域の説明を出力します。

omp_pr parallel_region_id - ancestors

指定された並列領域から、そのルートに至るまで、パス上のすべての並列領域の説明を出力します。

omp_pr -tree

並列領域ツリー全体の説明を出力します。

omp_pr -v

チームメンバー情報とともに、現在の並列領域の説明を出力します。

omp_serialize コマンド

omp_serialize コマンドは、現在のスレッド、または現在のチームのすべてのスレッドで、次に検出された並列領域の実行を直列化します。直列化は、並列領域への 1 回限りのトリップに対してのみ適用され、持続はしません。

このコマンドを使用するときは、プログラム内での位置が正しいことを確認してください。論理的な位置とは、並列指令の直前です。

構文

omp_serialize

現在のスレッドで、次に検出された並列領域の実行を直列化します。

omp_serialize -team

現在のチームのすべてのスレッドで、次に検出された並列領域の実行を直列化します。

omp_team コマンド

omp_team コマンドは、現在のチームのすべてのスレッドを出力します。

構文

omp_team

現在のチームのすべてのスレッドを出力します。

omp_team parallel_region_id

指定された並列領域のチームのすべてのスレッドを出力します。

omp_tr コマンド

omp_tr コマンドは、現在のタスク領域に関する説明を出力します。これには、タスク領域 ID、型 (暗黙的、明示的)、状態 (生成済み、実行中、または待機中)、実行中のスレッド、プログラムの場所 (プログラムのカウンタアドレス)、未完了の子、親が含まれます。

構文

omp_tr

現在のタスク領域の説明を出力します。

omp_tr task_region_id

指定されたタスク領域の説明を出力します。このコマンドが実行されても、dbx は、現在のタスク領域を指定されたタスク領域に切り替えません。

omp_tr -ancestors

現在のタスク領域から、現在のタスク領域ツリーのルートに至るまで、パス上のすべてのタスク領域の説明を出力します。

omp_tr task_region_id - ancestors

指定されたタスク領域から、そのルートに至るまで、パス上のすべてのタスク領域の説明を出力します。

omp_tr -tree

タスク領域ツリー全体の説明を出力します。

pathmap コマンド

pathmap コマンドは、ソースファイルなどを検索するために、1 つのパス名を別のパス名にマップします。マッピングは、ソースパス、オブジェクトファイルパス、および現在の作業ディレクトリに適用されます (-c を指定した場合)。pathmap コマンドの構文および機能は、ネイティブモードと Java モードで同一です。

pathmap コマンドは、さまざまなホスト上に存在するさまざまなパスを持つ、オートマウントされた明示的な NFS マウント済みファイルシステムを取り扱うときに便利です。オートマウントされたファイルシステムにおける CWD も不正確であるため、オートマウンタが原因である問題を解決する際には、-c を指定します。pathmap コマンドは、ソースツリーやビルドツリーを移動した場合にも便利です。

デフォルトの場合、pathmap /tmp_mnt / が存在します。

pathmap コマンドは、dbx 環境変数 core_lo_pathmap が on に設定されているときにロードオブジェクトを検索します。前述の場合以外では、pathmap コマンドはロードオブジェクト (共有ライブラリ) の検索に対して効果がありません。「一致しないコアファイルのデバッグ」を参照してください。

構文

pathmap [-c] [-index] from to

from から to への新たなマッピングを作成します。

pathmap [-c] [-index] to

すべてのパスを to にマッピングします。

pathmap

既存のパスマッピングすべてを一覧表示します (インデックス別に)。

pathmap -s

前述と同じですが、出力を dbx によって読み込むことができます。

pathmap -d from1 from2 ...

任意のマッピングをパスごとに削除します。

pathmap -d index1 index2 ...

任意のマッピングをインデックスごとに削除します。

ここで

fromto は、ファイルパス接頭辞です。from は実行可能ファイルやオブジェクトファイルにコンパイルされたファイルパス、to はデバッグ時におけるファイルパスを示します。

from1 は、最初に削除するマッピングのファイルパスです。

from2 は、最後に削除するマッピングのファイルパスです。

index は、マッピングをリストに挿入する際に使用するインデックスを指定します。インデックスを指定しなかった場合、リスト末尾にマッピングが追加されます。

index1 は、最初に削除するマッピングのインデックスです。

index2 は、最後に削除するマッピングのインデックスです。

-c を指定すると、現在の作業用ディレクトリにもマッピングが適用されます。

-s を指定すると、dbx が読み込める出力形式で既存のマッピングがリストされます。

-d を指定すると、指定のマッピングが削除されます。

(dbx) pathmap /export/home/work1 /net/mmm/export/home/work2
  # maps /export/home/work1/abc/test.c to /net/mmm/export/home/work2/abc/test.c
(dbx) pathmap /export/home/newproject
  # maps /export/home/work1/abc/test.c to /export/home/newproject/test.c
(dbx) pathmap
(1) -c /tmp_mnt /
(2) /export/home/work1 /net/mmm/export/home/work2
(3) /export/home/newproject

pop コマンド

pop コマンドは、1 個または複数のフレームを呼び出しスタックから削除します。ネイティブモードでだけ有効です。

-g を使ってコンパイルされた関数の場合、フレームにポップできるだけです。プログラムカウンタは、呼び出し場所におけるソース行の先頭にリセットされます。デバッガによる関数呼び出しを越えてポップすることはできません。pop -c を使用してください。

通常、pop コマンドはポップ対象フレームに関する C++ デストラクタをすべて呼び出します。dbx 環境変数 pop_auto_destruct を off に設定すれば、この動作を変更できます (dbx 環境変数の設定」参照)。

構文

pop

現在のトップフレームをスタックからポップします。

pop number

number 個のフレームをスタックからポップします。

pop -f number

現在のフレーム number までフレームをスタックからポップします。

pop -c

デバッガが行なった最後の呼び出しをポップします。

ここで

number は、スタックからポップするフレームの数です。

print コマンド

ネイティブモードでは、print コマンドは式の値を出力します。Java モードでは、print コマンドは式、局所変数、パラメータの値を出力します。

ネイティブモードの構文

print expression, ...

expression, ... の値を出力します。

print -r expression

継承メンバーを含み、式 expression の値を出力します (C++ のみ)。

print +r expression

dbx 環境変数 output_inherited_members が on であるときは、継承メンバーを出力しません (C++ のみ)。

print -d [-r] expression

expression の静的型ではなく動的型を表示します (C++ のみ)。

print +d [-r] expression

dbx 環境変数 output_dynamic_type が on であるときは、式 expression の動的型を使用しません (C++ のみ)。

print -s expression

式の中に private 変数または thread-private 変数が含まれる場合に、現在の OpenMP の並列領域の各スレッドの式 expression の値を出力します。

print -S [-r] [-d] expression

静的メンバーを含み、式 expression の値を出力します (C++ のみ)。

print +S [-r] [-d] expression

dbx 環境変数 show_static_memberson に設定されている場合は、静的メンバーを出力しません (C++ のみ)。

print -p expression

prettyprint 関数を呼び出します。

print +p expression

dbx 環境変数 output_pretty_print が on であるときは、prittyprint 関数を呼び出しません。

print -L expression

出力オブジェクト expression が 4K を超える場合は、出力を強制実行します。

print +l expression

式が文字列である場合 (char *)、アドレスの出力のみを行い、文字を出力しません。

print -l expression

('Literal') 左側を出力しません。式が文字列である場合 (char *)、アドレスの出力は行わず、文字列内の文字だけを引用符なしで出力します。

print -fformat expression

整数、文字列、浮動小数点の式の形式として format を使用します (オンラインヘルプの format 参照)。

print -Fformat expression

指定の形式を使用しますが、左側 (変数名や式) は出力しません (オンラインヘルプの format 参照)。

print -o expression

expression の値を出力します。これは、序数としての列挙式でなければなりません。ここでは、形式文字列を使用することもできます (-fformat)。非列挙式の場合、このオプションは無視されます。

print -- expression

'--' は、フラグ引数の終わりを示します。これは、expression がプラスやマイナスで始まる可能性がある場合に便利です。スコープ解釈処理ルールについては、「プログラムスコープ」を参照してください。

ここで

expression は、出力対象の値を持つ式です。

format は、式の出力時に使用する形式です。形式が指定の型に適用しない場合は、形式文字列は無視され、内蔵出力機構が使用されます。

許可されている形式は printf(3S) コマンドで使用されているもののサブセットです。次の制限が適用されます。

Java モードの構文

print expression, ... | ...

expression, ... または識別子 identifier, .... の値を出力します。

print -r expression | identifier

継承メンバーを含み、expression または識別子 identifier の値を出力します。

print +r expression | identifier

dbx 環境変数 output_inherited_members が on であ るときは、継承メンバーを出力しません。

print -d [-r] expression | identifier

expression または識別子 identifier の、静的型ではなく動的型を表示します。

print +d [-r] expression | identifier

dbx 環境変数 dbx output_dynamic_type が on であるときは、式 expression の動的型または識別子 identifier の値は使用しないでください。

print -- expression | identifier

'--' は、フラグ引数の終わりを示します。これは、expression がプラスやマイナスで始まる可能性がある場合に便利です。スコープ解釈処理ルールについては、「プログラムスコープ」を参照してください。

ここで

class_name は、Java クラス名で、パッケージのパス (. (ピリオド) を修飾子として使用。たとえば test1.extra.T1.Inner) またはフルパス名 (# 記号で始まり、/ (スラッシュ) や $ 記号を修飾子として使用。たとえば #test1/extra/T1$Inner) のいずれかで指定します。修飾子 $ を使用する場合は、class_name を引用符で囲みます。

expression は、値を出力する Java 式です。

field_name は、クラス内のフィールド名です。

identifierthis を含む局所変数またはパラメータで、現在のクラスインスタンス変数 (object_name.field_name) またはクラス (静的) 変数 (class_name.field_name) です。

object_name は、Java オブジェクトの名前です。

proc コマンド

proc コマンドは、現在のプロセスの状態を表示します。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

proc -map

ロードオブジェクトのリストおよびアドレスを表示します。

proc -pid

現在のプロセス ID (pid) を表示します。

prog コマンド

prog コマンドは、デバッグ中のプログラムとその属性を管理します。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

prog -readsyms

据え置きされていた記号情報を、dbx 環境変数 run_quick を on に設定することによって読み込みます。

prog -executable

- を使用してプログラムに接続されている場合、実行可能ファイルのフルパス - を出力します。

prog -argv

argv[0] を含む argv 全体を出力します。

prog -args

argv[0] を含まない argv を出力します。

prog -stdin

< filename を出力します。 stdin が使用されている場合は、空にします。

prog -stdout

> filename または >> filename を出力します。stdoutが 使用されている場合は空にします。-args-stdin-stdout の出力は、組み合わせて run コマンドで使用できるようになっています (run コマンド」参照)。

quit コマンド

quit コマンドは、dbx を終了します。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

dbx がプロセスに接続されている場合、このプロセスを切り離してから終了が行われます。保留状態のシグナルは取り消されます。微調整を行うには、detach コマンドを使用します (detach コマンド」参照)。

構文

quit

リターンコード 0 を出力して dbx を終了します。exit と同じです。

quit n

リターンコード n を出力して終了します。 exit n と同じです。

ここで

n は、リターンコードです。

regs コマンド

regs コマンドは、レジスタの現在値を出力します。ネイティブモードでだけ有効です。

構文

regs [-f] [-F]

ここで

-f には、浮動小数点レジスタ (単精度) が含まれます (SPARC プラットフォームのみ)。

-F には、浮動小数点レジスタ (倍精度) が含まれます (SPARC プラットフォームのみ)。

例 (SPARC プラットフォーム)


dbx[13] regs -F
current thread: t@1
current frame:  [1]
g0-g3              0x00000000 0x0011d000 0x00000000 0x00000000
g4-g7              0x00000000 0x00000000 0x00000000 0x00020c38
o0-o3              0x00000003 0x00000014 0xef7562b4 0xeffff420
o4-o7              0xef752f80 0x00000003 0xeffff3d8 0x000109b8
l0-l3              0x00000014 0x0000000a 0x0000000a 0x00010a88
l4-l7              0xeffff438 0x00000001 0x00000007 0xef74df54
i0-i3              0x00000001 0xeffff4a4 0xeffff4ac 0x00020c00
i4-i7              0x00000001 0x00000000 0xeffff440 0x000108c4
y                  0x00000000
psr                0x40400086
pc                 0x000109c0:main+0x4    mov     0x5, %l0
npc                0x000109c4:main+0x8    st      %l0, [%fp - 0x8]
f0f1               +0.00000000000000e+00
f2f3               +0.00000000000000e+00
f4f5               +0.00000000000000e+00
f6f7               +0.00000000000000e+00

replay コマンド

replay コマンドは、最後の runrerun、または debug コマンド以降のデバッグコマンドを再現します。ネイティブモードでだけ有効です。

構文

replay [-number]

次のコマンドすべてを再現するか、またはそれらのコマンドから number 個のコマンドを差し引いたコマンドを再現します。最後の run コマンド、rerun コマンド、または debug コマンド

ここで

number は、再現しないコマンドの数です。

rerun コマンド

rerun コマンドは、引数を付けないでプログラムを実行します。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

rerun

引数を付けないでプログラムの実行を開始します。

rerun arguments

save コマンドで新しい引数を付けてプログラムの実行を開始します (save コマンド」参照)。

restore コマンド

restore コマンドは、以前に保存されていた状態に dbx を復元します。ネイティブモードでだけ有効です。

構文

restore [file_name]

ここで

file_name は、dbx コマンドの実行対象ファイルの名前です。このコマンドは、最後の run コマンド、rerun コマンド、または debug コマンドが保存されてから実行されます。

rprint コマンド

rprint コマンドは、シェル引用規則を使用して式を出力します。ネイティブモードでだけ有効です。

構文

rprint [-r|+r|-d|+d|-S|+S|-p|+p|-L|-l|-f format | -Fformat | -- ] expression

式の値を出力します。特別な引用規則は適用されないので、rprint a > b の場合、a の値 (存在する場合) がファイル b に入れられます (フラグの意味については print コマンド」参照)。

ここで

expression は、出力対象の値を持つ式です。

format は、式の出力時に使用する形式です。詳細については、print コマンド」を参照してください。

rtc showmap コマンド

rtc showmap コマンドは、計測種類 (分岐またはトラップ) で分類されるプログラムのアドレス範囲をレポートします。ネイティブモードでだけ有効です。

構文

rtc showmap

このコマンドは上級ユーザー向けです。実行時チェックは、プログラムのテキストを計測してアクセスチェックを行います。計測種類として、使用可能なリソースに応じて、分岐またはトラップの命令を指定することができます。rtc showmap コマンドは、計測種類で分類されるプログラムのアドレス範囲をレポートします。このマップを使用して、パッチ領域オブジェクトファイルを追加するのに最適な場所を特定し、トラップの自動使用を回避することができます。詳細は、「実行時検査の制限」 を参照してください。

rtc skippatch コマンド

rtc skippatch コマンドは、ロードオブジェクト、オブジェクトファイル、および関数に対して、実行時検査による計測は行わないようにします。 コマンドの効果は、ロードオブジェクトが明示的に除外されないかぎり各 dbx セッションで有効なまま保持されます。

このコマンドの効果により、dbx はロードオブジェクト、オブジェクトファイル、および関数でメモリーアクセスを追跡しないため、スキップされない関数では、不正な rui エラーが報告されることがあります。このコマンドによって rui エラーが導かれたかどうかを dbx は特定できないため、このようなエラーは自動で抑制されません。

構文

rtc skippatch load_object ...

指定したオブジェクトを計測から除外します。

rtc skippatch load_object [-o object_file ...] [-f function ...]

指定したロードオブジェクト内の指定したオブジェクトファイルや関数を計測から除外します。

ここで

load_object はロードオブジェクトの名前またはロードオブジェクトへのパスです。

object_file は、オブジェクトファイルの名前です。

function は、関数の名前です。

run コマンド

run コマンドは引数を付けてプログラムを実行します。

Ctrl-C を使用すると、プログラムの実行が停止します。

ネイティブモードの構文

run

現在の引数を付けてプログラムの実行を開始します。

run arguments

新規の引数を付けてプログラムの実行を開始します。

run ... >|>> output_file

出力先の切り替えを設定します。

run ... < input_file

入力元の切り替えを設定します。

ここで

arguments はターゲットプロセスの実行に使用される引数です。

input_file は、入力元ファイルの名前です。

output_file は、出力先ファイルの名前です。


注 –

現在、run コマンドや runargs コマンドによって stderr の出力先を切り替えることはできません。


Java モードの構文

run

現在の引数を付けてプログラムの実行を開始します。

run arguments

新規の引数を付けてプログラムの実行を開始します。

ここで

arguments はターゲットプロセスの実行に使用される引数です。これらの引数は、Java アプリケーション (JVM ソフトウェアではありません) に渡されます。main クラス名を引数として含めないでください。

Java アプリケーションの入力または出力を run コマンドでリダイレクトすることはできません。

一回の実行で設定したブレークポイントは、それ以降の実行でも有効になります。

runargs コマンド

runargs コマンドは、ターゲットプロセスの引数を変更します。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

ターゲットプロセスの現在の引数を調べるには、引数を付けないで debug コマンドを使用します (debug コマンド」参照)。

構文

runargs arguments

run コマンドで使用する現在の引数を設定します (run コマンド」参照)。

runargs ... >|>>file

run コマンドで使用する出力先を設定します。

runargs ... <file

run コマンドで使用する入力元を設定します。

runargs

現在の引数をクリアします。

ここで

arguments はターゲットプロセスの実行に使用される引数です。

file は、ターゲットプロセスからの出力またはターゲットプロセスへの入力の切り替え先です。

save コマンド

save コマンドは、コマンドをファイルに保存します。ネイティブモードでだけ有効です。

構文

save [-number] [ file_name]

最後の run コマンド、rerun コマンド、または debug コマンド以降のコマンドすべて、またはそれらのコマンドから number 個のコマンドを差し引いたコマンドを、デフォルトファイルまたは file_name に保存します。

ここで

number は、保存しないコマンドの数です。

filename は、最後の run コマンド、rerun コマンド、または debug コマンドのあとに実行される dbx コマンドを保存するファイルの名前です。

scopes コマンド

scopes コマンドは、活動状態にあるスコープのリストを出力します。ネイティブモードでだけ有効です。

構文

scopes

search コマンド

search コマンドは、現在のソースファイルにおいて順方向検索を行います。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

search string

現在のファイルの中で、string を順方向で検索します。

search

最後の検索文字列を使用して検索を繰り返します。

ここで

string は、検索対象の文字列です。

showblock コマンド

showblock コマンドは、特定のヒープブロックが割り当てられた場所を示す実行時検査結果を表示します。ネイティブモードでだけ有効です。

実行時検査がオンになっているときに showblock コマンドを使用すると、指定アドレスのヒープブロックに関する詳細が表示されます。この詳細情報では、ブロックの割り当て場所とサイズを知ることができます。check コマンド」を参照してください。

構文

showblock -a address

ここで

address は、ヒープブロックのアドレスです。

showleaks コマンド


注 –

showleaks コマンドは Solaris プラットフォームでのみ利用可能です。


デフォルトの簡易形式では、1 行に 1 つのリークレコードを示すレポートが出力されます。実際に発生したリークのあとに、発生する可能性のあるリークが報告されます。レポートは、リークのサイズによってソートされます。

構文

showleaks [-a] [-m m] [-n number] [-v]

ここで

-a は、これまでに発生したリークすべてを表示します (最後の showleaks コマンドを実行したあとのリークだけではなく)。

-m m は、複数のリークをまとめます。2 個以上のリークに対する割り当て時の呼び出しスタックが m 個のフレームに一致するとき、これらのリークは 1 つのリークレポートにまとめて報告されます。-m オプションを指定すると、check コマンドで指定した m の大域値が無効となります (check コマンド」参照)。

-n number は、最大 number 個のレコードをレポートに表示します。デフォルトの場合、すべてのレコードが表示されます。

-v 冗長出力を生成します。デフォルトの場合、簡易出力が表示されます。

showmemuse コマンド

1 行に 1 つの「使用中ブロック」を示すレコードが出力されます。このコマンドは、ブロックの合計サイズに基づいてレポートをソートします。最後の showleaks コマンド (showleaks コマンド」参照) 実行後にリークしたブロックもレポートに含まれます。

構文

showmemuse [-a] [-m m] [-n number] [-v]

ここで

-a は、使用中ブロックすべてを表示します (最後の showmemuse コマンド実行後のブロックだけではなく)。

-m m は、使用中ブロックレポートをまとめます。m のデフォルト値は 2 または check コマンドで最後に指定した大域値です (check コマンド」参照)。2 個以上のブロックに対する割り当て時の呼び出しスタックが m 個のフレームに一致するとき、これらのブロックは 1 つのレポートにまとめて報告されます。-m オプションを使用すると、m の大域値が無効となります。

-n number は、最大 number 個のレコードをレポートに表示します。デフォルトは 20 です。

-v は、冗長出力を生成します。デフォルトの場合、簡易出力が表示されます。

source コマンド

source コマンドは、指定ファイルからコマンドを実行します。ネイティブモードでだけ有効です。

構文

source file_name

ファイル file_name からコマンドを実行します。$PATH は検索されません。

status コマンド

status コマンドは、イベントハンドラ (ブレークポイントなど) を一覧表示します。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

status

活動中の trace、when、および stop ブレークポイントを出力します。

status handler_id

ハンドラ handler_id のステータスを出力します。

status -h

隠れているものを含み、活動中の trace、when、および stop ブレークポイントを出力します。

status -s

前述と同じですが、出力を dbx によって読み込むことができます。

ここで

handler_id は、イベントハンドラの識別子です。


(dbx) status -s > bpts
...
(dbx) source bpts

step コマンド

step コマンドは、1 ソース行または 1 文をステップ実行します (-g オプションを使ってコンパイルされた呼び出しにステップインします)。

dbx 環境変数 step_events は、ステップ実行中にブレークポイントが使用可能であるかどうかを制御します。

dbx の環境変数 step_granularity は、ソース行のステップ実行のきめ細かさを制御します。

dbx の環境変数 step_abflow は、dbx が「異常」制御フロー変更が発生しそうになっていることを検出したときに停止するかどうかを制御します。このような制御フロー変更は、siglongjmp() または longjmp() の呼び出し、あるいは例外の送出が原因で発生することがあります。

ネイティブモードの構文

step

1 行をステップ実行します (呼び出しにステップイン)。関数呼び出しがステップオーバーされるマルチスレッドプログラムの場合、デッドロック状態を避けるため、その関数呼び出し中は全スレッドが暗黙的に再開されます。非活動状態のスレッドをステップ実行することはできません。

step n

n 行をステップ実行します (呼び出しにステップイン)。

step up

ステップアップし、現在の関数から出ます。

step ... -sig signal

ステップ実行中に指定のシグナルを引き渡します。シグナルに対するシグナルハンドラが存在する場合、そのシグナルハンドラが -g オプション付きでコンパイルされていると、そのシグナルにステップインします。

step ...thread_id

指定のスレッドをステップ実行します。step up には適用されません。

step ...lwp_id

指定の LWP をステップ実行します。関数をステップオーバーしたときに全 LWP を暗黙に再開しません。

step to [function]

現在のソースコード行から呼び出された function へのス テップインを試行します。function が指定されなかった場合、最後の関数へのステップインを試行し、step コマンドおよび step up コマンドによる長いシーケンスを防止できます。最後の関数の例としては、次のものがあります。

f()->s()-t()->last();

last(a() + b(c()->d()));

ここで

n は、ステップ実行対象の行数です。

signal はシグナル名です。

thread_id は、スレッド ID です。

lwp_id は、LWP ID です。

function は、関数名です。

明示的な lwp_id が指定されている場合のみ、step コマンドによる汎用のデッドロック回避策は無効となります。

最後のアセンブル呼び出し命令へのステップインや現在のソースコード行の関数 (指定されている場合) へのステップインが試行されている間に、step to コマンドを実行した場合、条件付き分岐があると呼び出しが受け付けられないことがあります。呼び出しが受け付けられない場合や現在のソースコード行に関数呼び出しがない場合、step to コマンドが現在のソースコード行をステップオーバーします。step to コマンドをを使用する際は、ユーザー定義演算子に特に注意してください。

マシンレベルの呼び出しステップ実行については、stepi コマンド」も参照してください。

Java モードの構文

step

1 行をステップ実行します (呼び出しにステップイン)。メソッド呼び出しがステップオーバーされるマルチスレッドプログラムの場合、デッドロック状態を避けるため、そのメソッド呼び出し中は全スレッドが暗黙的に再開されます。非活動状態のスレッドをステップ実行することはできません。

step n

n 行をステップ実行します (呼び出しにステップイン)。

step up

ステップアップし、現在のメソッドから出ます。

step ...thread_id

指定のスレッドをステップ実行します。step up には適用されません。

step ...lwp_id

指定の LWP をステップ実行します。メソッドをステップオーバーしたときに全 LWP を暗黙に再開しません。

stepi コマンド

stepi コマンドは、1 マシン命令をステップ実行します (呼び出しにステップイン)。ネイティブモードでだけ有効です。

構文

stepi

1 つのマシン命令をシングルステップ実行します (呼び出しにステップイン)。

stepi n

n 個のマシン命令をシングルステップ実行します (呼び出しへのステップイン)。

stepi -sig signal

ステップ実行し、指定のシグナルを引き渡します。

stepi ...lwp_id

指定の LWP をステップ実行します。

stepi ...thread_id

指定のスレッドが活動状態である LWP をステップ実行します。

ここで

n は、ステップ実行対象の命令数です。

signal はシグナル名です。

lwp_id は、LWP ID です。

thread_id は、スレッド ID です。

stop コマンド

stop コマンドは、ソースレベルのブレークポイントを設定します。

構文

stop コマンドは、ソースレベルのブレークポイントを設定します。

stop event_specification [modifier]

指定イベントが発生すると、プロセスが停止されます。

ネイティブモードの構文

ネイティブモードで有効な構文の中で重要なものを、いくつか次に示します。これ以外のイベントについては、「イベント指定の設定」を参照してください。

stop [-update]

実行をただちに停止します。when コマンドの本体内でのみ有効です。

stop -noupdate

実行をただちに停止しますが、Oracle Solaris Studio IDE のデバッガウィンドウは更新しません。

stop access mode address_expression [, byte_size_expression]

address_expression で指定したメモリーがアクセスされた場合に、実行を停止します。「特定アドレスへのアクセス時にプログラムを停止する」も参照してください。

stop at line-number

line_number で実行を停止します。「ソースコードの特定の行に stop ブレークポイントを設定する」も参照してください。

stop change variable

variable の値が変更された場合に実行を停止します。

stop cond condition_expression

condition_expression で指定した条件が真になる場合に実行を停止します。

stop in function

function が呼び出されたときに実行を停止します。「関数に stop ブレークポイントを設定する」も参照してください。

stop inclass class_name [-recurse | -norecurse]

C++ のみ: class/struct/union/template のいずれかのクラスのメンバー関数すべてにブレークポイントを設定します。-norecurse はデフォルトです。-recurse が指定された場合、基底クラスが含まれます。「クラスのすべてのメンバー関数にブレークポイントを設定する」も参照してください。

stop infile file_name

file_name 内のいずれかの関数が呼び出された場合、実行を停止します。

stop infunction name

C++ のみ: すべての非メンバー関数 name にブレークポイントを設定します。

stop inmember name

C++ のみ: 次の関数にブレークポイントを設定します。すべてのメンバー関数 name「異なるクラスのメンバー関数にブレークポイントを設定する」を参照。

stop inobject object_expression [-recurse | -norecurse]

C++ のみ: オブジェクト object_expression から呼び出された場合に、クラスおよびそのすべての基底クラスの非静的メソッドへのエントリにブレークポイントを設定します。-recurse はデフォルトです。-norecurse が指定された場合、基底クラスは含まれません。「オブジェクトにブレークポイントを設定する」も参照してください。

line_number は、ソースコード行の番号です。

function は、関数の名前です。

class_name は、C++ の class、struct、union、または template クラスの名前です。

mode はメモリーのアクセス方法を指定します。次の文字 (複数可) で構成されます。

r

指定したアドレスのメモリーが読み取られたことを示します。

w

メモリーへの書き込みが実行されたことを示します。

x

メモリーが実行されたことを示します。

mode には、次を含めることもできます。

a

アクセス後にプロセスを停止します (デフォルト)。

b

アクセス前にプロセスを停止します。

name は、C++ 関数名です。

object_expression は、C++ オブジェクトを示します。

variable は、変数の名前です。

ネイティブモードでは、次の修飾子が有効です。

-if condition_expression

condition_expression が真の場合にだけ、指定したイベントが 発生します。

-in function

指定したイベントが function の範囲内で発生した場合にだけ、実行が停止します。

-count number

カウンタが 0 で開始され、イベントの発生ごとに増分されます。number に到達すると、実行が停止され、カウンタが 0 にリセットされます。

-count infinity

カウンタが 0 で開始され、イベントの発生ごとに増分されます。実行は停止されません。

-temp

イベントの発生時に削除される一時的なブレークポイントを作成します。

-disable

無効状態のブレークポイントを作成します。

-instr

命令レベルのバリエーションを実行します。たとえば、step は命令レベルのステップ実行になり、at では行番号ではなくテキストアドレスを引数として指定します。

-perm

このイベントをデバッグ中は常に有効にします。一部のイベント (ブレークポイントなど) は、常に有効にするのには適していません。 delete all は、常に有効なハンドラを削除しません。削除するには、delete hid を使用します。

-hidden

status コマンドからイベントを隠ぺいします。一部のインポートモジュールでこれが使用されることがあります。そのようなモジュールを表示するには、status -h を使用します。

-lwp lwp_id

指定した LWP で指定したイベントが発生した場合にだけ、実行が停止します。

-thread thread_id

指定したスレッドで指定したイベントが発生した場合にだけ、実行が停止します。

Java モードの構文

Java モードでは、次の構文が有効です。

stop access mode class_name.field_name

class_name.field_name によって指定されたメモリーがアクセスされた場合、実行を停止します。

stop at line_number

line_number で実行を停止します。

stop at file_name:line_number

file_nameline_number で実行を停止します。

stop change class_name.field_name

class_namefield_name の値が変更された場合に実行を停止します。

stop classload

いずれかのクラスが読み込まれた場合に実行を停止します。

stop classload class_name

class_name が読み込まれた場合に実行を停止します。

stop classunload

いずれかのクラスが読み込み解除された場合に実行を停止します。

stop classunload class_name

class_name が読み込み解除された場合に実行を停止しま す。

stop cond condition_expression

condition_expression で指定した条件が真になる場合に実行を停止します。

stop in class_name.method_name

class_name. method_name に入力され、最初の行が実行される直前に、実行を停止します。パラメータが指定されておらず、メソッドがオーバーロードされている場合は、メソッドのリストが表示されます。

stop in class_name.method_name([parameters])

class_name. method_name に入力され、最初の行が実行される直前に、実行を停止します。

stop inmethod class_name.method_name

class_name.method_name で指定した、すべての非メンバーメソッドでブレークポイントを設定します。

stop inmethod class_name.method_name ([parameters])

class_name.method_name で指定した、すべての非メンバーメソッドでブレークポイントを設定します。

stop throw

Java の例外が投げられた場合に実行を停止します。

stop throw type

type で指定した種類の Java の例外が投げられた場合に実行を停止します。

ここで

class_name は、Java クラス名で、パッケージのパス (. (ピリオド) を修飾子として使用。たとえば test1.extra.T1.Inner) またはフルパス名 (# 記号で始まり、/ (スラッシュ) や $ 記号を修飾子として使用。たとえば #test1/extra/T1$Inner) のいずれかで指定します。修飾子 $ を使用する場合は、class_name を引用符で囲みます。

condition_expression には、任意の式を指定できます。ただし、評価結果が整数型になる必要があります。

field_name は、クラス内のフィールド名です。

file_name は、ファイルの名前です。

line_number は、ソースコード行の番号です。

method_name は、Java メソッドの名前です。

mode はメモリーのアクセス方法を指定します。次の文字 (複数可) で構成されます。

r

指定したアドレスのメモリーが読み取られたことを示します。

w

メモリーへの書き込みが実行されたことを示します。

mode には、次を含めることもできます。

b

アクセス前にプロセスを停止します。

プログラムカウンタは、問題のある個所を示します。

parameters は、メソッドのパラメータです。

type は、Java の例外の種類です。type には、-unhandled または -unexpected を指定できます。

Java モードでは、次の修飾子が有効です。

-if condition_expression

condition_expression が真の場合にだけ、指定したイベントが 発生します。

-count number

カウンタが 0 で開始され、イベントの発生ごとに増分されます。number に到達すると、実行が停止され、カウンタが 0 にリセットされます。

-count infinity

カウンタが 0 で開始され、イベントの発生ごとに増分されます。実行は停止されません。

-temp

イベントの発生時に削除される一時的なブレークポイントを作成します。

-disable

無効状態のブレークポイントを作成します。

マシンレベルのブレークポイントの設定については、stopi コマンド」も参照してください。

全イベントのリストと構文については、「イベント指定の設定」を参照してください。

stopi コマンド

stopi コマンドは、マシンレベルのブレークポイントを設定します。ネイティブモードでだけ有効です。

構文

stopi コマンドの一般構文は、次のとおりです。

stopi event_specification [modifier]

指定イベントが発生すると、プロセスが停止されます。

次の構文が有効です。

stopi at address

address の場所で実行を停止します。

stopi in function

function が呼び出されたときに実行を停止します。

ここで

address は、アドレスとなった式またはアドレスとして使用可能な式です。

function は、関数の名前です。

全イベントのリストと構文については、「イベント指定の設定」を参照してください。

suppress コマンド

suppress コマンドは、実行時検査中のメモリーエラーの報告を抑止します。ネイティブモードでだけ有効です。

dbx 環境変数 rtc_auto_suppress が on である場合、指定場所におけるメモリーエラーは 1 度だけ報告されます。

構文

suppress

suppress コマンドと unsuppress コマンドの履歴 (-d オプションと -reset オプションを指定するものは含まない)。

suppress -d

デバッグ用にコンパイルされなかった関数で抑止されているエラーのリスト (デフォルト抑止)。このリストは、ロードオブジェクト単位です。これらのエラーの抑止を解除する唯一の方法は、unsuppress コマンドを -d オプションを付けて使用することです。

suppress -d errors

errors をさらに抑止することによって、全ロードオブジェクトに対するデフォルト抑止を変更します。

suppress -d errors in load_objects

errors をさらに抑止することによって、load_objects のデフォルト抑止を変更します。

suppress -last

エラー位置における現在のエラーを抑止します。

suppress -reset

デフォルト抑止としてオリジナルの値を設定します (起動時)。

suppress -r id...

id (unsuppress コマンドで取得できる) によって指定される抑止解除イベントを削除します (unsuppress コマンド」参照)。

suppress -r 0 | all | -all

unsuppress コマンドによって指定される抑止解除イベントすべてを削除します (unsuppress コマンド」参照)。

suppress errors

あらゆる場所における errors を抑止します。

suppress errors in [functions] [files] [load_objects]

functions リスト、files リスト、load_objects リストにおける errors を抑止します。

suppress errors at line

line における errors を抑止します。

suppress errors at "file":line

fileline における errors を抑止します。

suppress errors addr address

address における errors を抑止します。

ここで

address は、メモリーアドレスです。

errors は空白文字で区切られた次の要素で構成されます。

all

すべてのエラー

aib

メモリーリークの可能性 - ブロック中のアドレス

air

メモリーリークの可能性 - レジスタ中のアドレス

baf

不正解放

duf

重複解放

mel

メモリーリーク

maf

境界整列を誤った解放

mar

境界整列を誤った読み取り

maw

境界整列を誤った書き込み

oom

メモリー不足

rob

配列の範囲外のメモリーからの読み取り

rua

非割り当てメモリーからの読み取り

rui

非初期化メモリーからの読み取り

wob

配列の範囲外のメモリーへの書き込み

wro

読み取り専用メモリーへの書き込み

wua

非割り当てメモリーへの書き込み

biu

ブロック使用状況 (割り当てられているメモリー)。biu はエラーではありませんが、errors とまったく同じように suppress コマンドで使用できます。

file は、ファイルの名前です。

files は、1 個または複数のファイル名です。

functions は、1 個または複数の関数名です。

line は、ソースコード行の番号です。

load_objects は、1 個または複数のロードオブジェクト名です。

エラーの抑止については、「エラーの抑止」を参照してください。

エラーの抑止解除については、unsuppress コマンド」を参照してください。

sync コマンド

sync コマンドは、指定の同期オブジェクトに関する情報を表示します。ネイティブモードでだけ有効です。


注 –

sync コマンドが実行できるのは、Solaris プラットフォームのみです。


構文

sync -info address

address における同期オブジェクトに関する情報を表示します。

ここで

address は、同期オブジェクトのアドレスです。

syncs コマンド

syncs コマンドは、同期オブジェクト (ロック) すべてを一覧表示します。ネイティブモードでだけ有効です。


注 –

syncs コマンドが実行できるのは、Solaris プラットフォームのみです。


構文

syncs

thread コマンド

thread コマンドは、現在のスレッドの表示や変更を行います。

ネイティブモードの構文

thread

現在のスレッドを表示します。

thread thread_id

スレッド thread_id に切り替えます。

次の構文で thread_id がない場合は、現在のスレッドが仮定されます。

thread -info [thread_id]

指定スレッドに関する既知情報すべてを出力します。OpenMP スレッドの場合、この情報には OpenMP のスレッド ID、並列領域 ID、タスク領域 ID、およびスレッドの状態が含まれます。

thread -hide [thread_id]

指定 (または現在の) スレッドを隠ぺいします。通常のスレッドリストには表示されなくなります。

thread -unhide [thread_id]

指定 (または現在の) スレッドを隠ぺい解除します。

thread -unhide all

すべてのスレッドを隠ぺい解除します。

thread -suspend thread_id

指定した (または現在の) スレッドの実行を一時停止します。中断されているスレッドは、スレッドリストに「S」の文字とともに表示されます。

thread -resume thread_id

-suspend の効果を解除します。

thread -blocks [thread_id]

ほかのスレッドをブロックしている指定スレッドが保持しているロックすべてを一覧表示します。

thread -blockedby [thread_id]

指定スレッドをブロックしている同期オブジェクトがある場合、そのオブジェクトを表示します。

ここで

thread_id は、スレッド ID です。

Java モードの構文

thread

現在のスレッドを表示します。

thread thread_id

スレッド thread_id に切り替えます。

次の構文で thread_id がない場合は、現在のスレッドが仮定されます。

thread -info [thread_id]

指定スレッドに関する既知情報すべてを出力します。

thread -hide [thread_id]

指定 (または現在の) スレッドを隠ぺいします。通常のスレッドリストには表示されなくなります。

thread -unhide [thread_id]

指定 (または現在の) スレッドを隠ぺい解除します。

thread -unhide all

すべてのスレッドを隠ぺい解除します。

thread -suspend thread_id

指定した (または現在の) スレッドの実行を一時停止します。中断されているスレッドは、スレッドリストに「S」の文字とともに表示されます。

thread -resume thread_id

-suspend の効果を解除します。

thread -blocks [thread_id]

thread_id が所有する Java モニターを表示します。

thread -blockedby [thread_id]

thread_id がブロックされている Java モニターを表示します。

ここで

thread_idt@numberdbx 形式のスレッド ID またはスレッドを指定した Java スレッド名です。

threads コマンド

threads コマンドは、すべてのスレッドを一覧表示します。

ネイティブモードの構文

threads

既知のスレッドすべてのリストを出力します。

threads -all

通常出力されないスレッド (ゾンビ) を出力します。

threads -mode all|filter

全スレッドを出力するか、またはスレッドをフィルタリングするかを指定します。デフォルトではスレッドがフィルタリングされます。フィルタリングがオンになっている場合、thread -hide コマンドによって隠されているスレッドはリスト表示されません。

threads -mode auto|manual

IDE で、スレッドリストの自動更新を有効にします。

threads -mode

現在のモードをエコーします。

各行は、次の項目で構成されます。

Java モードの構文

threads

既知のスレッドすべてのリストを出力します。

threads -all

通常出力されないスレッド (ゾンビ) を出力します。

threads -mode all|filter

全スレッドを出力するか、またはスレッドをフィルタリングするかを指定します。デフォルトではスレッドがフィルタリングされます。

threads -mode auto|manual

IDE で、スレッドリストの自動更新を有効にします。

threads -mode

現在のモードをエコーします。

各行は、次の項目で構成されます。

trace コマンド

trace コマンドは、実行したソース行、関数呼び出し、変数の変更を表示します。

トレース速度は dbx 環境変数 trace_speed によって設定します。

dbx が Java モードで、トレースのブレークポイントをネイティブコードで設定する場合は、joff コマンドを使用してネイティブモードに切り替えるか (joff コマンド」参照)、traceコマンドの前に native を追加します (native コマンド」参照)。

dbx が JNI モードで、トレースのブレークポイントを Java コードで設定する場合は、trace コマンドの前に java を追加します (java コマンド」参照)。

構文

trace コマンドの一般構文は、次のとおりです。

trace event_specification [modifier]

指定イベントが発生すると、トレースが出力されます。

ネイティブモードの構文

ネイティブモードでは、次の構文が有効です。

trace -file file_name

指定 file_name に全トレース出力を送ります。トレース出力を標準出力に戻すには、file_name の代わりに - を使用します。トレース出力は常に file_name に追加されます。トレース出力は、dbx がプロンプト表示するたび、またアプリケーションが終了するたびにフラッシュされます。dbx 接続後にプログラムの実行を再開するか新たに実行を開始すると、file_name が常に開きます。

trace step

各ソース行、関数呼び出し、および戻り値をトレースします。

trace next -in function

指定 function の中で各ソース行をトレースします。

trace at line_number

指定のソース line_number をトレースします。

trace in function

指定 function の呼び出しとこの関数からの戻り値をトレースします。

trace infile file_name

file_name 内のいずれかの関数の呼び出しとその関数からの戻り値をトレースします。

trace inmember function

function という名前のメンバー関数の呼び出しをトレースします。

trace infunction function

functionという名前の関数が呼び出されるとトレースします。

trace inclass class

class のメンバー関数の呼び出しをトレースします。

trace change variable

variable の変更をトレースします。

ここで

file_name は、トレース出力の送信先ファイルの名前です。

function は、関数の名前です。

line_number は、ソースコード行の番号です。

class は、クラスの名前です。

variable は、変数の名前です。

ネイティブモードでは、次の修飾子が有効です。

-if condition_expression

condition_expression が真の場合にだけ、指定したイベントが 発生します。

-in function

指定したイベントが関数で発生した場合にだけ、実行が停止します。

-count number

カウンタが 0 で開始され、イベントの発生ごとに増分されます。number に到達すると、実行が停止され、カウンタが 0 にリセットされます。

-count infinity

カウンタが 0 で開始され、イベントの発生ごとに増分されます。実行は停止されません。

-temp

イベントの発生時に削除される一時的なブレークポイントを作成します。

-disable

無効状態のブレークポイントを作成します。

-instr

命令レベルのバリエーションを実行します。たとえば、step は命令レベルのステップ実行になり、at では行番号ではなくテキストアドレスを引数として指定します。

-perm

このイベントをデバッグ中は常に有効にします。一部のイベント (ブレークポイントなど) は、常に有効にするのには適していません。 delete all は、常に有効なハンドラを削除しません。削除するには、delete hid を使用します。

-hidden

status コマンドからイベントを隠ぺいします。一部のインポートモジュールでこれが使用されることがあります。そのようなモジュールを表示するには、status -h を使用します。

-lwp lwpid

指定した LWP で指定したイベントが発生した場合にだけ、実行が停止します。

-thread thread_id

指定したスレッドで指定したイベントが発生した場合にだけ、実行が停止します。

Java モードの構文

Java モードでは、次の構文が有効です。

trace -file file_name

指定 file_name に全トレース出力を送ります。トレース出力を標準出力に戻すには、file_name の代わりに - を使用します。トレース出力は常に file_name に追加されます。トレース出力は、dbx がプロンプト表示するたび、またアプリケーションが終了するたびにフラッシュされます。file_name は、接続後の新規実行時や再開時に必ずオープンし直されます。

trace at line_number

line_number をトレースします。

trace at file_name.line_number

指定したソース file_name.line_number をトレースします。

trace in class_name.method_name

次の呼び出しと、戻り値をトレースします。class_name. method_name

trace in class_name.method_name([parameters])

class_name.method_name([parameters]) の呼び出しと、このメソッドからの戻り値をトレースします。

trace inmethod class_name.method_name

class_name.method_name という名前のメソッドの呼び出しと、このメソッドからの戻り値をトレースします。

trace inmethod class_name.method_name[(parameters)]

class_name.method_name [(parameters)] と言う名前のメソッドの呼び出しと、このメソッドからの戻り値をトレースします。

ここで

class_name は、Java クラス名で、パッケージのパス (. (ピリオド) を修飾子として使用。たとえば test1.extra.T1.Inner) またはフルパス名 (# 記号で始まり、/ (スラッシュ) や $ 記号を修飾子として使用。たとえば #test1/extra/T1$Inner) のいずれかで指定します。修飾子 $ を使用する場合は、class_name を引用符で囲みます。

file_name は、ファイルの名前です。

line_number は、ソースコード行の番号です。

method_name は、Java メソッドの名前です。

parameters は、メソッドのパラメータです。

Java モードでは、次の修飾子が有効です。

-if condition_expression

condition_expression が真の場合にだけ、指定したイベントが発生し、トレースが出力されます。

-count number

カウンタが 0 で開始され、イベントの発生ごとに増分されます。number に到達すると、トレースが出力され、カウンタが 0 にリセットされます。

-count infinity

カウンタが 0 で開始され、イベントの発生ごとに増分されます。実行は停止されません。

-temp

イベントが発生してトレースが出力されるときに削除される、一時的なブレークポイントを作成します。-temp -count とともに使用した場合は、カウンタが 0 にリセットされたときだけブレークポイントが削除されます。

-disable

無効状態のブレークポイントを作成します。

全イベントのリストと構文については、「イベント指定の設定」を参照してください。

tracei コマンド

traceiコマンドは、マシン命令、関数呼び出し、変数の変更を表示します。ネイティブモードでだけ有効です。

tracei は、trace event-specification -instr の省略形です。ここで、-instr 修飾子を指定すると、ソース行の細分性ではなく命令の細分性でトレースが行われます。イベント発生時に出力される情報は、ソース行の書式ではなく逆アセンブリの書式になります。

構文

tracei step

各マシン命令をトレースします。

tracei next -in function

指定 function の中で書く命令をトレースします。

tracei at address_expression

address にある命令をトレースします。

tracei in function

指定 function の呼び出しとこの関数からの戻り値をトレー スします。

tracei inmember function

function という名前のメンバー関数の呼び出しをトレースします。

tracei infunction function

functionという名前の関数が呼び出されるとトレースします。

tracei inclass class

class のメンバー関数の呼び出しをトレースします。

tracei change variable

variable の変更をトレースします。

ここで

filename は、トレース出力の送信先ファイルの名前です。

function は、関数の名前です。

line は、ソースコード行の番号です。

class は、クラスの名前です。

variable は、変数の名前です。

詳細については、trace コマンド」を参照してください。

uncheck コマンド

uncheck コマンドは、メモリーのアクセス、リーク、使用状況の検査を使用不可にします。ネイティブモードでだけ有効です。

構文

uncheck

検査の現在のステータスを出力します。

uncheck -access

アクセス検査を停止します。

uncheck -leaks

リーク検査を停止します。

uncheck -memuse

memuse 検査を停止します (リーク検査も停止されます)。

uncheck -all

uncheck -accessuncheck -memuse と同じです。

uncheck [functions] [files] [loadobjects]

suppress all (functions files loadobjects に対する) と同じです。

ここで

functions は、1 個または複数の関数名です。

files は、1 個または複数のファイル名です。

loadobjects は、1 個または複数のロードオブジェクト名です。

検査をオンにする方法については、check コマンド」を参照してください。

エラーの抑止解除については、suppress コマンド」を参照してください。

実行時検査の概要については、「概要」を参照してください。

undisplay コマンド

undisplay コマンドは、display コマンドを取り消します。

ネイティブモードの構文

undisplay expression, ...

display expression コマンドを取り消します。

undisplay n, ...

n 個の display コマンドを取り消します。

undisplay 0

すべての display コマンドを取り消します。

ここで

expression は、有効な式です。

Java モードの構文

undisplay expression, ... | identifier, ...

display expression,... または display identifier, ... コマンドを取り消します。

undisplay n, ...

n 個の display コマンドを取り消します。

undisplay 0

すべての display コマンドを取り消します。

ここで

expression は、有効な Java の式です。

field_name は、クラス内のフィールド名です。

identifierthis を含む局所変数またはパラメータで、現在のクラスインスタンス変数 (object_name.field_name) またはクラス (静的) 変数 (class_name.field_name) です。

unhide コマンド

unhide コマンドは、hide コマンドを取り消します。ネイティブモードでだけ有効です。

構文

unhide 0

すべてのスタックフレームフィルタを削除します。

unhide regular_expression

スタックフレームフィルタ regular_expression を削除します。

unhide number

スタックフレームフィルタ番号 number を削除します。

ここで

regular_expression は、正規表現です。

number は、スタックフレームフィルタの番号です。

hide コマンド (「浮動小数点例外を捕捉する」参照) は、番号を持つフィルタを一覧表示します。

unintercept コマンド

unintercept コマンドは、intercept コマンドを取り消します (C++ のみ)。ネイティブモードでだけ有効です。

構文

unintercept intercepted_typename [, intercepted_typename ... ]

種類が intercepted_typename の送出を intercept リストから削除します。

unintercept -a[ll]

すべての種類の送出を intercept リストから削除します。

unintercept -x excluded_typename [, excluded_typename ... ]

excluded_typename excluded リストから削除します。

unintercept -x -a[ll]

すべての種類の送出を excluded リストから削除しま す。

unintercept

阻止対象の型を一覧表示します。

ここで

included_typename および excluded_typename は、List <int> unsigned short などの例外仕様です。

unsuppress コマンド

unsuppress コマンドは、suppress コマンドを取り消します。ネイティブモードでだけ有効です。

構文

unsuppress

suppress コマンドと unsuppress コマンドの履歴 (-d オプションと -reset オプションを指定するものは含まない)。

unsuppress -d

デバッグ用にコンパイルされなかった関数で抑止解除されているエラーのリスト。このリストは、ロードオブジェクト単位です。エラーを抑止する方法は、-d オプションを付けて suppress コマンド (suppress コマンド」参照) を使用することだけです。

unsuppress -d errors

errors をさらに抑止解除することによって、全ロードオブジェクトに対するデフォルト抑止を変更します。

unsuppress -d errors in loadobjects

errors をさらに抑止解除することによって、loadobjects のデフォルト抑止を変更します。

unsuppress -last

エラー位置における現在のエラーを抑止解除します。

unsuppress -reset

デフォルト抑止マスクとしてオリジナルの値を設定します (起動時)。

unsuppress errors

あらゆる場所における errors を抑止解除します。

unsuppress errors in [functions] [files] [loadobjects]

functions リスト、files リスト、loadobjects リストにおける errors を抑止します。

unsuppress errors at line

line における errors を抑止解除します。

unsuppress errors at "file"line

fileline における errors を抑止解除します。

unsuppress errors addr address

address における errors を抑止解除します。

unwatch コマンド

unwatch コマンドは、watch コマンドを取り消します。ネイティブモードでだけ有効です。

構文

unwatch expression

watch expression コマンドを取り消します。

unwatch n

n で指定された番号の watch コマンドを取り消します。

unwatch 0

すべての watch コマンドを取り消します。

ここで

expression は、有効な式です。

up コマンド

up コマンドは、呼び出しスタックを上方向に移動します (main に近づく)。このコマンドの構文および機能は、ネイティブモードと Java モードで同一です。

構文

up

呼び出しスタックを 1 レベル上方向に移動します。

up number

呼び出しスタックを number レベルだけ上方向に移動します。

up -h [number]

呼び出しスタックを上方向に移動しますが、隠しフレームをとばすことはしません。

ここで

number は、呼び出しスタックレベルの数です。

use コマンド

use コマンドは、ディレクトリ検索パスの表示や変更を行います。ネイティブモードでだけ有効です。

このコマンドは古いため、次の pathmap コマンドにマッピングしてあります。

use は、pathmap -s と同じです。

use directory は、pathmap directory と同じです。

watch コマンド

watch コマンドは、すべての停止ポイントの式を、その停止ポイントでの現在のスコープ内で評価して出力します。式は入力時に分析されないので、式の正確さをすぐに確認できません。watch コマンドはネイティブモードだけで有効です。

構文

watch

表示されている式のリストを表示します。

watch expression

expression の値を、すべての停止ポイントで表示します。

watch [-r|+r|-d|+d|-S|+S|-p|+p|-L|-fformat |-Fformat|--] expression

フラグの意味については、print コマンド」を参照してください。

ここで

expression は、有効な式です。

format は、式の出力時に使用する形式です。詳細については、print コマンド」を参照してください。

whatis コマンド

ネイティブモードでは、whatis コマンドは式の型または型の宣言を出力します。該当する場合は、OpenMP のデータ共有属性情報も出力します。

Java モードでは、whatis コマンドは識別子の宣言を出力します。識別子がクラスの場合は、クラスのメソッド (継承されたすべてのメソッドを含む) を出力します。

ネイティブモードの構文

what is [-n] [-r] name

型ではない name の宣言を出力します。

whatis -t [-r] type

type の宣言を出力します。

whatis -e [-r] [-d] expression

expression の型を出力します。

ここで

name は、型ではない名前です。

type は、型名です。

expression は、有効な式です。

-d は、静的型ではなく動的型を表示します (C++ のみ)。

-e は、式の型を表示します。

-n は、型ではない宣言を表示します。-n はオプションを指定せずに whatis コマンドを使用したときのデフォルト値であるため、-n を指定する必要はありません。

-r は、基底クラスに関する情報を出力します (C++ のみ)。

-t は、型の宣言を表示します。

C++ のクラスや構造体に対して whatis コマンドを実行すると、定義済みメンバー関数すべて (未定義メンバー関数は除く)、静的データメンバー、クラスのフレンド、およびそのクラス内で明示的に定義されているデータメンバーのリストが表示されます。

-r (recursive) オプションを指定すると、継承クラスからの情報が追加されます。

-d フラグを -e フラグと併用すると、式の動的型が使用されます。

C++ の場合、テンプレート関係の識別子は次のように表示されます。

Java モードの構文

whatis identifier

identifier の宣言を出力します。

ここで

identifier は、クラス、現在のクラス内のメソッド、現在のフレーム内の局所変数、現在のクラス内のフィールドのいずれかです。

when コマンド

when コマンドは、指定したイベントが発生したときに、コマンドを実行します。

dbx が Java モードで、when のブレークポイントをネイティブコードで設定する場合は、joff コマンドを使用してネイティブモードに切り替えるか (joff コマンド」を参照)、when コマンドの前に native を追加します (native コマンド」参照)。

dbx が JNI モードで、when のブレークポイントを Java コードで設定する場合は、when コマンドの前に java を追加します (java コマンド」を参照)。

構文

when コマンドの一般構文は、次のとおりです。

when event_specification [modifier]{command; ... }

指定イベントが発生すると、コマンドが実行されます。when コマンドで禁止されているコマンドには次のものがあります。

オプションなしの cont コマンドは無視されます。

ネイティブモードの構文

ネイティブモードでは、次の構文が有効です。

when at line_number { command; }

line_number に到達したら、command を実行します。

when in procedure { command; }

procedure が呼び出されたら、command を実行します。

ここで

line_number は、ソースコード行の番号です。

command は、コマンドの名前です。

procedure は、手続きの名前です。

Java モードの構文

Java モードでは、次の構文が有効です。

when at line_number

ソースの line_number に到達したときにコマンドを実行します。

when at file_name.line_number

file_name. line_number に到達したときにコマンドを実行します。

when in class_name.method_name

class_name. method_name が呼び出されたときにコマンドを実行します。

when in class_name.method_name([parameters])

class_name. method_name([parameters]) が呼び出されたときにコマンドを実行します。

class_name は、Java クラス名で、パッケージのパス (. (ピリオド) を修飾子として使用。たとえば test1.extra.T1.Inner) またはフルパス名 (# 記号で始まり、/ (スラッシュ) や $ 記号を修飾子として使用。たとえば #test1/extra/T1$Inner) のいずれかで指定します。修飾子 $ を使用する場合は、class_name を引用符で囲みます。

file_name は、ファイルの名前です。

line_number は、ソースコード行の番号です。

method_name は、Java メソッドの名前です。

parameters は、メソッドのパラメータです。

全イベントのリストと構文については、「イベント指定の設定」を参照してください。

下位レベルのイベントの発生時にコマンドを実行する方法については、wheni コマンド」を参照してください。

wheni コマンド

wheni コマンドは、指定した下位レベルのイベントが発生したときに、コマンドを実行します。ネイティブモードでだけ有効です。

wheni コマンドの一般構文は、次のとおりです。

構文

wheni event_specification [ modifier]{command... ; }

指定イベントが発生すると、コマンドが実行されます。

次の構文が有効です。

wheni at address_expression { command; }

address_expression に到達したときに、command を実行します。

ここで

address は、アドレスとなった式またはアドレスとして使用可能な式です。

command は、コマンドの名前です。

全イベントのリストと構文については、「イベント指定の設定」を参照してください。

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 スレッド名です。

whereami コマンド

whereami コマンドは、現在のソース行を表示します。ネイティブモードでだけ有効です。

構文

whereami

現在の位置 (スタックのトップ) に該当するソース行、および現在のフレームに該当するソース行を表示します (前者と異なる場合)。

whereami -instr

前述と同じ。ただし、ソース行ではなく現在の逆アセンブル命令が出力されます。

whereis コマンド

whereis コマンドは、特定の名前の使用状況すべて、またはアドレスの英字名を出力します。ネイティブモードでだけ有効です。

構文

whereis name

name の宣言をすべて出力します。

whereis -a address_expression

address_expression の場所を出力します。

ここで

name は、変数、関数、クラステンプレート、関数テンプレートといった、スコープ内の読み込み可能オブジェクトの名前です。

address は、アドレスとなった式またはアドレスとして使用可能な式です。

which コマンド

which コマンドは、指定の名前の完全修飾形を出力します。ネイティブモードでだけ有効です。

構文

which [-n] name

name の完全修飾形を出力します。

which -t type

type の完全修飾形を出力します。

ここで

name は、変数、関数、クラステンプレート、関数テンプレートといった、スコープ内の物の名前です。

type は、型名です。

-n は、型以外の完全修飾形を表示します。-n はオプションを指定せずに which コマンドを使用したときのデフォルト値であるため、n を指定する必要はありません。

-t は、型の完全修飾形を表示します。

whocatches コマンド

whocatches コマンドは、C++ 例外が捕獲される場所を示します。ネイティブモードでだけ有効です。

構文

whocatches type

type の例外が現在の実行点で送出された場合にどこで捕獲されることになるかを示します (捕獲されるとしたら)。次に実行される文が throw x であり (x の型は type)、これを捕獲する catch 節の行番号、関数名、フレーム番号を表示するとします。

このとき、送出を行う関数の中に捕獲点がある場合には、"type is unhandled" が返されます。

ここで

type は、例外の型です。