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

印刷ビューの終了

更新: 2015 年 1 月
 
 

コマンドリファレンス

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

assign コマンド

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

ネイティブモードの構文

assign variable = expression

ここでは:

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

Java モードの構文

assign identifier = expression

ここでは:

expression は、次のいずれかを含むことができる有効な Java の式です。

  • class-name は、Java クラスの名前です。次のいずれかを使用できます。

    • ピリオド (.) を修飾子として使用したパッケージのパス (test1.extra.T1.Inner など)

    • シャープ記号 (#) が前に付き、スラッシュ (/) とドル記号 ($) を修飾子として使用したフルパス名。たとえば #test1/extra/T1$Inner などです。$ 修飾子を使用する場合は、class-name を引用符で囲みます。

  • 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-name には ‐ を指定できます。dbx/proc を使用してプログラムを見つけます。

attach -r ...

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

ここでは:

process-ID は実行中のプロセスのプロセス ID です。

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

dbx を実行中の Java プロセスに接続する方法については、動作中の Java アプリケーションへの dbx の接続を参照してください。

bsearch コマンド

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

構文

bsearch string

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

bsearch

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

ここでは:

string は、文字列です。

call コマンド

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

call コマンドを使用して、関数を呼び出すこともできます。戻り値を表示するには、print コマンドを使用します。

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

ネイティブモードの構文

call procedure ([parameters]) [–lang language] [–resumeone] [–m] [+m]

ここでは:

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

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

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

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

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

–m は、dbxenv 変数 macro_expandoff に設定されている場合に、手続きとパラメータにマクロ展開を適用するように指定します。

+m は、dbxenv 変数 macro_expandon に設定されている場合に、マクロ展開をスキップするように指定します。

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 は、メソッドのパラメータです。

cancel コマンド

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

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

catch コマンド

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

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

構文

catch

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

catch number number ...

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

catch signal signal ...

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

catch $(ignore)

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

ここでは:

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

signal はシグナル名です。

check コマンド

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

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

構文

このセクションでは、check コマンドのオプションに関する情報を提供します。

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 によって変更できます。

–access オプション

–access オプションはチェックを有効にします。RTC は、次のエラーを報告します。

baf

不正な領域解放

duf

重複領域解放

maf

境界整列を誤った解放

mar

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

maw

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

oom

メモリー不足

rob

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

rua

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

rui

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

wob

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

wro

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

wua

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

デフォルトの動作は、各アクセスエラーが検出されるとプロセスを停止することです。これを変更するには、rtc_auto_continue dbxenv 変数を使用します。on に設定すると、アクセスエラーがファイルに記録されます。ログファイル名は、dbxenv 変数 rtc_error_log_file_name で制御されます。

デフォルトの場合、それぞれのアクセスエラーが報告されるのは、 最初に発生したときだけです。この動作は、dbxenv 変数 rtc_auto_suppress を使用して変更できます。この変数のデフォルト設定は on です。

–leaks オプション

leaks オプションの構文:

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

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

aib

メモリーリークの可能性 – 唯一のポインタがブロックの真ん中を指しています。

air

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

mel

メモリーリーク – ブロックへのポインタが存在しません。

リーク検査を有効にすると、プログラムが存在していれば自動リークレポートが作成されます。このとき、可能性のあるリークを含むすべてのリークが報告されます。デフォルトでは、dbxenv 変数 rtc_mel_at_exit から変更可能な簡易レポートが生成されます。ただし、リークレポートをいつでも要求することができます (showleaks コマンドを参照)。

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

n のデフォルト値は、8 または m の値です (どちらか大きい方)。n の最大値は 16 です。m のデフォルト値は 8 です。

–memuse オプション

–memuse オプションの構文:

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

–memuse オプションは –leaks オプションと同じような動作をし、プログラム終了時、使用中ブロックのレポート (biu) も有効にします。デフォルトでは、dbxenv 変数 rtc_biu_at_exit から変更可能な使用中ブロックの簡易レポートが生成されます。プログラムの実行中にいつでも、プログラム内のメモリーがどこに割り当てられているかを確認できます (showmemuse コマンドを参照)。

–frames n は、メモリーの使用およびリークが報告されるとき、n 個までのスタックフレームが個別に表示されることを示します。–match m を使用して、これらのレポートを組み合わせます。複数のリークの割り当て時に、呼び出しスタックが m 個のフレームに一致した場合、これらのリークは、単一の結合されたメモリーリークレポートで報告されます。

n のデフォルト値は、8 または m の値です (どちらか大きい方)。n の最大値は 16 です。m のデフォルト値は 8 です。

–all オプション

–all オプションの構文:

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

次と同等です。

check –access and check –memuse [–frames n] [–match m]

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

clear コマンド

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

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

構文

clear [filename: line]

ここでは:

line はソースコード行の番号であるため、指定された行にあるすべてのブレークポイントがクリアされます。

filename はソースコードファイルの名前で、指定されたファイルの行 line にあるすべてのブレークポイントがクリアされます。

ファイルや行を指定していない場合、現在の停止点にあるすべてのブレークポイントがクリアされます。

collector コマンド

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

このセクションでは、コレクタコマンドを一覧表示し、それらの詳細を説明します。

構文

collector archive options

実験の終了時に実験をアーカイブするためのモードを指定します。

collector dbxsample options

dbx がターゲットプロセスを停止した場合の標本の収集を制御します。

collector disable

データ収集を停止し、現在の実験を閉じます。

collector enable

コレクタを有効にし、新しい実験を開きます。

collector heaptrace options

ヒープトレースデータの収集を有効または無効にします。

collector hwprofile options

ハードウェアカウンタプロファイリング設定を指定します。

collector limit options

記録されるプロファイリングデータの量を制限します。

collector pause

パフォーマンスデータの収集を停止しますが、実験は開いたままにします。

collector profile options

呼び出しスタックプロファイリングデータの収集の設定を指定します。

collector resume

一時停止後、パフォーマンスデータの収集を開始します。

collector sample options

標本設定を指定します。

collector show options

現在のコレクタ設定を表示します。

collector status

現在の実験に関するステータスを照会します。

collector store options

実験ファイルの制御と設定。

collector synctrace options

スレッド同期待ちトレースデータの収集のための設定を指定します。

collector tha options

スレッドアナライザデータの収集の設定を指定します。

collector version

データを収集するために使用される libcollector.so のバージョンを報告します。

ここでは:

データ収集を開始するには、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 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 on|hi|high|lo|low|off

デフォルトの場合、ハードウェアカウンタオーバーフロープロファイルデータは収集されません。このデータを収集するには、on を指定します。カウンタの解像度を high または low に設定できます。解像度を指定しない場合、標準に設定されます。これらのオプションは collect コマンドオプションに似ています。詳細は、collect(1) のマニュアルページを参照してください。

collector hwprofile addcounter on|off

ハードウェアカウンタオーバーフロープロファイルのためのカウンタを追加します。

collector hwprofile counter name interval [name2 interval2]

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

ここでは:

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

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

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

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

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

collector limit コマンド

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

構文

collector limit value | unlimited | none

ここでは:

value はメガバイト単位であり、記録されているプロファイリングデータの量を制限し、正の数値でなければなりません。 制限に到達すると、それ以上のプロファイリングデータは記録されませんが、実験は開かれたままで、標本ポイントの記録は継続されます。デフォルトでは、記録されるデータサイズに制限はありません。

制限を設定した場合、制限を削除するには unlimited または none を指定します。

collector pause コマンド

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

collector profile コマンド

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

構文

collector profile on|off

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

collector profile timer interval

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

collector resume コマンド

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

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 sample

標本設定値を表示します

collector show store

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

collector show tha

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

collector status コマンド

collector status コマンドは、現在の実験のステータスについて照会します。作業ディレクトリと実験名を返します。

collector store コマンド

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

構文

collector store {–directory pathname | –filename filename | –group string}

ここでは:

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

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

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

collector synctrace コマンド

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

構文

collector synctrace on|off

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

collector synctrace threshold {microseconds| calibrate}

しきい値をマイクロ秒単位で指定します。デフォルト値は 100 です。calibrate が指定された場合、しきい値が自動的に計算されます。

ここでは:

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

collector tha コマンド

collector tha コマンドは、しきい値アナライザデータの収集のオプションを指定します。

構文

collector tha on|off

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

collector version コマンド

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

構文

collector version

cont コマンド

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

構文

cont

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

cont ... –sig signal

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

cont ... ID

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

cont at line [ID]

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

cont ... –follow parent|child|both

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

dalias コマンド

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

構文

dalias [name [definition]]

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

名前を指定した場合、別名 name があれば定義が一覧表示されます。

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

ここでは:

name は、別名の名前です。

definition は、別名の定義です。

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

!:<n>

!-<n>

!^

!$

!*

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

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

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

dbx コマンド

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

ネイティブモードの構文

dbx options program-name [core | process-ID]

program-name をデバッグします。

core を指定した場合、コアファイル core によって program-name がデバッグされます。

process-ID を指定した場合、プロセス ID process-ID によって program-name がデバッグされます。

dbx options - {process-ID|core}

process-ID を指定した場合、プロセス ID process-ID がデバッグされ、dbx は、/proc を使用してプログラムを見つけます。

core を指定した場合、コアファイル core によってデバッグされます。

dbx options - core

コアファイル core を使用してデバッグします。

dbx options –r program-name arguments

引数 argumentsprogram-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 | –a} program-name{.class | .jar} arguments

引数 argumentsprogram-name を実行します。異常終了した場合、program-name のデバッグを開始し、そうでない場合は単に終了します。

ここでは:

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

process-id は実行中のプロセスのプロセス ID です。

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

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

オプション

次の表に、ネイティブモードおよび Java モードの両方の dbx コマンドのオプションを一覧表示します

–-a arguments
プログラム引数 arguments を付けてプログラムをロードします。
–-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-dir/.dbxrc または $HOME/ .dbxrc の代わりに起動ファイルとして使用します。
-S
初期設定ファイル /install-dir/lib/dbxrc の読み取りを抑止します。
-V
dbx のバージョンを出力します。
-w n
where コマンドで n 個のフレームをスキップします。
-x exec32
64 ビット OS を実行しているシステム上でデフォルトで実行される 64 ビットの dbx バイナリの代わりに、32 ビットの dbx バイナリを実行します。
--
オプションのリストの最後を示します。プログラム名がダッシュで始まる場合は、これを使用します。

dbxenv コマンド

dbxenv コマンドは、dbxenv 変数の表示や設定に使用します。このコマンドの構文および機能は、ネイティブモードと Java モードで同じです。

構文

dbxenv [environment-variable setting]

dbxenv 変数の現在の設定値を表示します。dbxenv 変数を指定した場合、dbxenv 変数が setting に設定されます。

ここでは:

environment-variabledbxenv 変数です。

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 コマンドを使用すれば、それらを有効にできます。

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 オプションを使用すると、dbxwatch コマンド、display コマンド、trace コマンド、when コマンド、stop コマンドをすべて保持します。-r オプションを使用しない場合は、delete all コマンドと undisplay 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 のデバッグを開始します。

ここでは:

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

初期設定ファイル /install-dir/lib/dbxrc の読み取りを抑止します。

–V

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

–w n

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

–-

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

delete コマンド

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

構文

delete [-h] handler-ID ...

指定された handler-IDtrace コマンド、when コマンド、または stop コマンドを削除します。非表示のハンドラを削除するには、–h オプションを含める必要があります。

delete [-h] O | all | -all

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

delete -temp

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

delete $firedhandlers

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

ここでは:

handler-ID は、ハンドラの識別子です。

detach コマンド

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

ネイティブモードの構文

detach [–sig signal | –stop]

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

–sig オプションを指定した場合、指定の signal の転送中に切り離します。

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

ここでは:

signal はシグナル名です。

Java モードの構文

detach

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

dis コマンド

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

構文

dis [ –a ] address [/count]

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

dis address1, address2

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

dis

+ の値から始まる 10 命令を逆アセンブルします。

ここでは:

address は、逆アセンブルを開始するアドレスです。デフォルトの address 値は、前にアセンブルされた最後のアドレスの次のアドレスになります。この値は、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 または dbxtool で実行している場合、display expression コマンドは事実上 watch $(which expression) コマンドのように動作します。

ネイティブモードの構文

display

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

display expression, ...

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

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

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

ここでは:

expression は、有効な式です。

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

Java モードの構文

display

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

display expression|identifier, ...

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

display [-r|+r|-d|+d|-p|+p|-fformat|-Fformat|-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 [procedure]

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

手続きを指定した場合、procedure の局所変数がすべて出力されます。

ここでは:

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

edit コマンド

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

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

構文

edit [filename | procedure]

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

ファイル名を指定した場合、指定したファイル filename を編集します。

手続きを指定した場合、関数または手続き procedure を含むファイルを編集します。

ここでは:

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

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

examine コマンド

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

x コマンドは 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 コマンドによって共有されます。

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 は動的例外の表示を有効にします。

+d は動的例外の表示を無効にします。

exists コマンド

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

構文

exists name

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

ここでは:

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

file コマンド

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

構文

filefilename

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

ファイル名を指定した場合、現在のファイルを変更します。

ここでは:

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

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 [file-name file-name ...] [–options]

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

ファイル名が一覧表示されたら、リスト内のファイルを修正します。

ここでは:

–options は次の有効なオプションです。

–f

ソースが変更されていない場合にも、ファイルの修正を強制します。

–a

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

–g

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

–c

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

–n

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

v

冗長モード (dbx fix_verbose 環境変数の設定をオーバーライドします)。

+v

簡易モード (dbx fix_verbose 環境変数の設定をオーバーライドします)。

fixed コマンド

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

fortran_module コマンド

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

構文

fortran_modules [–f module-name | –v module-name]

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

–m オプションを指定した場合、指定したモジュールのすべての関数が一覧表示されます。

–m オプションを指定した場合、指定したモジュールのすべての変数が一覧表示されます。

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 [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 [-f filename] [-g] [regular-expression]

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

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

regular-expression を指定した場合、この正規表現に一致する関数すべてが一覧表示されます。

ここでは:

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

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 コマンドをサポートしていません。

  • commands

  • define

  • handle

  • hbreak

  • interrupt

  • maintenance

  • printf

  • rbreak

  • return

  • signal

  • tcatch

  • until

handler コマンド

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

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

構文

handler [-enable | -disable] handler-ID ...

特定のハンドラを有効または無効にし、全ハンドラを示す all として handler-ID を指定します。handler-ID の代わりに $firedhandlers を使用すると、最後の停止を引き起こしたハンドラが無効となります。

handler -count handler-ID new-limit

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

新しい制限パラメータを指定した場合、指定のイベントの新しいカウント制限が設定されます。

handler -reset handler-ID

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

ここでは:

handler-ID は、ハンドラの識別子です。

hide コマンド

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

構文

hide regular-expression

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

正規表現を指定した場合、regular-expression に一致するスタックフレームが非表示になります。正規表現は関数名またはロードオブジェクトの名前に一致し、sh または ksh ファイル照合形式の正規表現です。

ここでは:

regular-expression は正規表現です。

ignore コマンド

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

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

構文

ignore [number ... | signal ...]

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

シグナル番号を指定した場合、number の番号のシグナルが無視されます。

シグナルを指定した場合、signal で指定されたシグナルが無視されます。SIGKILL を捕獲したり無視したりすることはできません。

ここでは:

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

signal はシグナル名です。

import コマンド

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

構文

import path-name

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

ここでは:

path-name は、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 [–a]

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

–a オプションを指定した場合、システムクラスとその他の既知の Java クラスが出力されます。

joff コマンド

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

jon コマンド

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

jpkgs コマンド

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

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

kill コマンド

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

構文

kill -l

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

kill

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

kill [signal]job ...

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

–signal オプションを指定した場合、特定のシグナルが一覧表示されたジョブに送信されます。

ここでは:

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

%+

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

%-

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

%number

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

%string

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

%?string

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

ここでは:

signal はシグナル名です。

language コマンド

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

構文

language

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

ここでは:

languagecc++fortran、または fortran90 です。


注 -  c は ansic の別名です。

line コマンド

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

構文

line [["file-name":][number]]

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

番号を指定した場合、現在の行番号が number に設定されます。

ファイル名を指定した場合、現在の行番号が filename の 1 行目に設定されます。

両方を指定した場合、現在の行番号が file-namenumber 行目に設定されます。

ここでは:

filename は、行番号を変更するファイルの名前です。ファイル名を囲む "" 引用符はオプションです。それらはファイル名にスペースが含まれている場合に便利です。

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 filename

ファイル filename の先頭を一覧表示します。

list filename:n

ファイル filenamen 行目から一覧表示します。

ここでは:

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

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 –i を使用するのと同じです。

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

loadobject コマンド

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

このセクションでは、loadobject オプションを一覧表示し、それらの詳細を説明します。

構文

loadobject -list [regexp] [-a]

現在ロードされたロードオブジェクトを表示します。

loadobject -load loadobject

指定したロードオブジェクトのシンボルをロードします。

loadobject -unload [regexp]

指定したロードオブジェクトをアンロードします。

loadobject -hide [regexp]

dbx の検索アルゴリズムからロードオブジェクトを削除します。

loadobject -use [regexp]

dbx の検索アルゴリズムにロードオブジェクトを追加します。

loadobject -dumpelf [regexp]

ロードオブジェクトのさまざまな ELF 詳細を表示します。

loadobject -exclude ex-regexp

ex-regexp に一致するロードオブジェクトを自動的にロードしません。

loadobject exclude -clear

パターンの除外リストをクリアします。

ここでは:

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

ex-regexp はオプションではなく、指定する必要があります。

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

loadobject -dumpelf コマンド

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

構文

loadobject -dumpelf [regexp]

ここでは:

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

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

loadobject -exclude コマンド

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

構文

loadobject -exclude ex-regexp [-clear]

ここでは:

ex-regexp は正規表現です。

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

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

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

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

loadobject -hide コマンド

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

構文

loadobject -hide [regexp]

ここでは:

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

このコマンドは、プログラムのスコープからロードオブジェクトを削除し、その関数およびシンボルを dbx で認識しないように設定します。また、このコマンドは「preload」ビットをリセットします。詳細については、dbx プロンプトに次を入力して、dbx ヘルプファイルを参照してください。

(dbx) help loadobject preloading

loadobject -list コマンド

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

構文

loadobject -list [regexp] [-a]

ここでは:

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

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

h

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

u

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

p

この文字は、プリロードされたロードオブジェクト、つまり 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 load-object

ここでは:

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

loadobject -unload コマンド

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

構文

loadobject -unload [regexp]

ここでは:

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

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

loadobject -use コマンド

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

構文

loadobject -use [regexp]

ここでは:

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

lwp コマンド

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


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

構文

lwp

現在の LWP を表示します。

lwp lwp-ID

LWP lwp-ID に切り替えます。

lwp –info

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

lwp [lwp-ID] –setfp address-expression

fp レジスタに address_expression の値が入っていることを dbx に伝えます。デバッグ中のプログラムの状態は変更されません。–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 コマンドは Oracle Solaris プラットフォームでのみ利用可能です。

macro コマンド

macro コマンドは、式のマクロ展開を出力します。

構文

macro expression, ...

mmapfile コマンド

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

Oracle 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 | -a}

name を指定した場合、name というモジュールのデバッグ情報を読み取ります。–a を指定した場合、すべてのモジュールのデバッグ情報を読み取ります。

ここでは:

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

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

-f はファイルが実行可能ファイルより新しい場合でも、デバッグ情報を強制的に読み取ります。このオプションは慎重に使用してください。

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

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

modules コマンド

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

構文

modules [-v] [–debug |–read]

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

–debug を指定した場合、デバッグ情報を含むすべてのモジュールが一覧表示されます。

–read を指定した場合、すでに読み取られたデバッグ情報を含むモジュールの名前が一覧表示されます。

ここでは:

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

native コマンド

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

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

構文

native command

ここでは:

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

next コマンド

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

dbx step_events 環境変数 (dbxenv 変数の設定を参照) は、ステップ実行中にブレークポイントを有効にするかどうかを制御します。

ネイティブモードの構文

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) の詳細については、Oracle Solaris の『マルチスレッドのプログラミング』を参照してください。

Java モードの構文

next

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

next n

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

next ... thread-ID

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

next ... lwp-ID

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

ここでは:

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

thread-ID はスレッド識別子です。

lwp-ID は LWP 識別子です。

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


注 -  軽量プロセス (LWP) の詳細については、Oracle 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_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 [–team]

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

–team を指定した場合、現在のチームのすべてのスレッドに対してこれが実行されます。

omp_team コマンド

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

構文

omp_team [parallel-region-ID]

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

並列領域 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 マウント済みファイルシステムを取り扱うときに便利です。自動マウントされたファイルシステム上の現在の作業ディレクトリは不正確です。オートマウンタが原因で起こる問題を修正しようとする場合は -c を指定します。pathmap コマンドは、ソースツリーやビルドツリーを移動した場合にも便利です。

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

pathmap コマンドは、dbxenv 変数 core_lo_pathmapon に設定されているときに、コアファイルのロードオブジェクトを検索するために使用します。前述の場合以外では、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 は、最初に削除するマッピングのパスです。

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

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 に設定してオーバーライドできます。

構文

pop

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

pop number

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

pop -f number

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

pop -c

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

ここでは:

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

print コマンド

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

ネイティブモードの構文

print expression, ...

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

print -r expression

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

print +r expression

dbx output_inherited_members 環境変数が on に設定されている場合は、継承メンバーを出力しません。

print -d [-r] expression

expression の静的型ではなく動的型を表示します。

print +d [-r] expression

dbx output_dynamic_type 環境変数が on に設定されている場合は、式 expression の動的型を使用しません。

print -s expression

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

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

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

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

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

print -p expression

prettyprint 関数を呼び出します。

print +p expression

dbx output_pretty_print 環境変数が on の場合、prettyprint 関数を呼び出しません。

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 —m expression

dbxenv 変数 macro_expandoff に設定されている場合、expression にマクロ展開を適用します。

print +m expression

dbxenv 変数 macro_expandon に設定されている場合、式のマクロ展開をスキップします。

print -- expression

'--' は、フラグ引数の終わりを示します。これは、expression がプラスまたはマイナスで開始できる場合に便利です。スコープ解決の規則については、プログラムスコープを参照してください。

ここでは:

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

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

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

  • n 変換できません。

  • フィールド幅または精度に * を使用できません。

  • %<digits>$ 引数を選択できません。

  • 1 つの形式文字列に対して 1 つの変換指定のみが可能です。

    許可されている形式は、次の簡易文法で定義されます。

    FORMAT ::= CHARS % FLAGS WIDTH PREC MOD SPEC CHARS

    CHARS ::= <any character sequence not containing a %>

    | %%

    | <empty>

    | CHARS CHARS

    FLAGS ::= + | - | <space> | # | 0 | <empty>

    WIDTH ::= <decimal_number> | <empty>

    PREC ::= . | . <decimal_number> | <empty>

    MOD ::= h | l | L | ll | <empty>

    SPEC ::= d | i | o | u | x | X | f | e | E | g | G |

    c | wc | s | ws | p

    指定の書式文字列に % を含まない場合は、dbx によって自動的に付加されます。形式文字列がスペース、セミコロン、またはタブを含んでいる場合は、形式文字列全体を二重引用符で囲む必要があります。

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 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 {–cwd | –map | –pid}

–cwd を指定した場合、現在のプロセスの現在の作業ディレクトリが表示されます。

–map を指定した場合、アドレスを含むロードオブジェクトのリストが表示されます。

–process-ID を指定した場合、現在のプロセス ID (process-ID) が表示されます。

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 コマンドで再利用できるように設計されています。

quit コマンド

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

dbx がプロセスに接続されている場合、このプロセスを切り離してから終了が行われます。保留状態のシグナルは取り消されます。微調整するには、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 [filename ]

ここでは:

filename は、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 skippatch コマンド

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

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

構文

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 コマンドを使用します。

構文

runargs arguments

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

runargs ... >|>>file

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

runargs ... <file

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

runargs

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

ここでは:

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

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

save コマンド

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

構文

save [ -number ] [ filename ]

最後の run コマンド、rerun コマンド、または debug コマンドのあとのすべてのコマンドまたは number 個のコマンドを引いたすべてのコマンドをデフォルトのファイルまたは filename に保存します。

ここでは:

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

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

scopes コマンド

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

search コマンド

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

構文

search string

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

search

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

ここでは:

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

showblock コマンド

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

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

構文

showblock -a address

ここでは:

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

showleaks コマンド


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

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

構文

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

ここでは:

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

-m m はリークを組み合わせます。2 個以上のリークに対する割り当て時の呼び出しスタックが m 個のフレームに一致するとき、これらのリークは 1 つのリークレポートにまとめて報告されます。-m オプションを指定した場合、check コマンドで指定した m の大域値がオーバーライドされます。

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

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

showmemuse コマンド

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

構文

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

ここでは:

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

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

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

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

source コマンド

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

構文

source filename

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

status コマンド

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

構文

status

有効な tracewhen、および stop ブレークポイントを出力します。

status handler-ID

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

status -h

非表示のものを含み、有効な tracewhen、および 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 です。

lip-ID は LWP ID です。

function は、関数名です。

明示的な lwpID が指定されている場合、汎用 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 change variable

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

stop cond condition-expression

condition-expression で指定した条件が true に評価された場合に実行を停止します。

stop in function

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

stop inclass class-name [ -recurse | -norecurse ]

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

stop infile file-name

filename 内のいずれかの関数が呼び出されたときに、実行を停止します。

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 が true に評価された場合にだけ、指定したイベントが発生します。

–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 filename:line-number

filenameline-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 で指定した条件が true に評価される場合に実行を停止します。

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 は、クラス内のフィールド名です。

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

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

method-name は、Java メソッドの名前です。

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

r

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

w

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

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

b

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

プログラムカウンタは、問題のある個所を示します。

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

type は、Java 例外のタイプです。type の有効な値は、-unhandled または -unexpected です。

Java モードでは、次の修飾子が有効です。

–if condition-expression

condition-expression が true に評価された場合にだけ、指定したイベントが発生します。

–count number

カウンタが 0 で開始され、イベントの発生ごとに増分されます。number に到達すると、実行が停止され、カウンタが 0 にリセットされます。

–count infinity

カウンタが 0 で開始され、イベントの発生ごとに増分されます。実行は停止されません。

–temp

イベントの発生時に削除される一時的なブレークポイントを作成します。

–disable

無効状態のブレークポイントを作成します。

マシンレベルのブレークポイントの設定については、stopi コマンドを参照してください。

全イベントのリストと構文については、イベント指定の設定を参照してください。

stopi コマンド

stopi コマンドは、マシンレベルのブレークポイントを設定します。ネイティブモードでだけ有効です。

構文

stopi コマンドの一般構文は、次のとおりです。

stopi event-specification [modifier]

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

次の構文が有効です。

stopi at address-expression

address-expression の場所で実行を停止します。

stopi in function

function が呼び出されたときに実行を停止します。

ここでは:

address-expression は、アドレスとなる式またはアドレスとして使用可能な式です。

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...

unsuppress コマンドで取得可能な、ID で指定された抑止解除イベントを削除します。

suppress -r 0 | all | -all

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 コマンドは、Oracle Solaris プラットフォームでのみ使用できます。

構文

sync -info address

address における同期オブジェクトに関する情報を表示します。

ここでは:

address は、同期オブジェクトのアドレスです。

syncs コマンド

syncs コマンドは、同期オブジェクト (ロック) すべてを一覧表示します。ネイティブモードでだけ有効です。


注 -  syncs コマンドは、Oracle Solaris プラットフォームでのみ使用できます。

thread コマンド

thread コマンドは、現在のスレッドの表示や変更を行います。

ネイティブモードの構文

thread

現在のスレッドを表示します。

thread thread-ID

スレッド thread-ID に切り替えます。

次のバリエーションで、スレッド 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 に切り替えます。

次のバリエーションで、スレッド 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

現在のモードをエコーします。

    各行は、次の項目で構成されます。

  • * (アスタリスク) は、ユーザーの注意を必要とするイベントがこのスレッドで発生したことを示します。通常は、ブレークポイントに付けられます。

    アスタリスクの代わりに 'o' が示される場合は、dbx 内部イベントが発生しています。

  • > (矢印) は、現在のスレッドを示します。

  • t@num はスレッド ID であり、特定のスレッドを指します。number は、thr_create が返す thread_t の値になります。

  • b l@num は、そのスレッドが結合されていることを示します (指定した LWP に現在割り当てられている)。a l@num は、スレッドがアクティブであることを示します (現在実行が予定されている)。

  • thr_create に渡されたスレッドの「開始関数」。?() は開始関数が不明であることを示します。

  • スレッドの状態。次のいずれかになります。

    • monitor

    • running

    • sleeping

    • unknown

    • wait

    • zombie

    スレッドが現在実行している関数

Java モードの構文

threads

既知のスレッドすべてのリストを出力します。

threads -all

通常出力されないスレッド (ゾンビ) を出力します。

threads -mode all|filter

全スレッドを出力するか、またはスレッドをフィルタリングするかを指定します。デフォルトではスレッドがフィルタリングされます。

threads -mode auto|manual

IDE で、スレッドリストの自動更新を有効にします。

threads -mode

現在のモードをエコーします。

    各行は、次の項目で構成されます。

  • > (矢印) は、現在のスレッドを示します。

  • t@numberdbx 形式のスレッド ID

  • スレッドの状態。次のいずれかになります。

    • monitor

    • running

    • sleeping

    • unknown

    • wait

    • zombie

  • 単一引用符内のスレッド名

  • スレッドの優先順位を示す番号

trace コマンド

trace コマンドは、実行したソース行、関数呼び出し、変数の変更を表示します。

トレース速度は dbx trace_speed 環境変数 によって設定します。

dbx が Java モードで、トレースのブレークポイントをネイティブコードで設定する場合は、joff コマンドを使用してネイティブモードに切り替えるか、traceコマンドの前に native を追加します。

dbx が JNI モードで、トレースのブレークポイントを Java コードで設定する場合は、trace コマンドの前に java を追加します。

構文

trace コマンドの一般構文は、次のとおりです。

trace event-specification [modifier]

指定イベントが発生すると、トレースが出力されます。

ネイティブモードの構文

ネイティブモードでは、次の構文が有効です。

trace -file filename

指定したファイル名に全トレース出力を送ります。トレース出力を標準出力に戻すには、filename の代わりに - を使用します。トレース出力は常に filename に追加されます。トレース出力は、dbx がプロンプト表示するたび、またアプリケーションが終了するたびにフラッシュされます。接続後に新たに実行するか実行を再開すると、ファイルが常に再び開きます。

trace step

各ソース行、関数呼び出し、および戻り値をトレースします。

trace next -in function

指定した関数内にいる間、各ソース行をトレースします。

trace at line-number

指定のソース line をトレースします。

trace in function

指定した関数の呼び出しとその関数からの戻り値をトレースします。

trace infile filename

file_name 内の任意の関数の呼び出しとその関数からの戻り値をトレースします。

trace inmember function

function という名前のメンバー関数の呼び出しをトレースします。

trace infunction function

functionという名前の関数が呼び出されるとトレースします。

trace inclass class

class のメンバー関数の呼び出しをトレースします。

trace change variable

variable の変更をトレースします。

ここでは:

filename は、トレース出力の送信先ファイルの名前です。

function は、関数の名前です。

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

class は、クラスの名前です。

variable は、変数の名前です。

ネイティブモードでは、次の修飾子が有効です。

–if condition-expression

condition-expression が true に評価された場合にだけ、指定したイベントが発生します。

–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 モードでは、次の構文が有効です。

trace -file filename

すべてのトレース出力を指定した filename に送ります。トレース出力を標準出力に戻すには、filename の代わりに - を使用します。トレース出力は常に filename に追加されます。トレース出力は、dbx がプロンプト表示するたび、またアプリケーションが終了するたびにフラッシュされます。接続後に新たに実行するか実行を再開すると、ファイルが常に再び開きます。

trace at line-number

line-number をトレースします。

trace at filename.line-number

指定したソース filename.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 を引用符で囲みます。

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

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

method-name は、Java メソッドの名前です。

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

Java モードでは、次の修飾子が有効です。

–if condition-expression

condition-expression が true に評価された場合にだけ、指定したイベントが発生し、トレースが出力されます。

–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

指定した関数内にいる間に各命令をトレースします。

tracei at address

address にある命令をトレースします。

tracei in function

指定した関数の呼び出しとその関数からの戻り値をトレースします。

tracei inmember function

function という名前のメンバー関数の呼び出しをトレースします。

tracei infunction function

functionという名前の関数が呼び出されるとトレースします。

tracei inclass class

class のメンバー関数の呼び出しをトレースします。

tracei change variable

変数の変更をトレースします。

ここでは:

address は、アドレスとなった式またはアドレスとして使用可能な式です。

filename は、トレース出力の送信先ファイルの名前です。

function は、関数の名前です。

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

class は、クラスの名前です。

variable は、変数の名前です。

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

uncheck コマンド

uncheck コマンドは、メモリーのアクセス、リーク、使用状況の検査を使用不可にします。ネイティブモードでだけ有効です。

構文

uncheck

検査の現在のステータスを出力します。

uncheck -access

アクセス検査を無効にします。

uncheck -leaks

リーク検査を無効にします。

uncheck -memuse

メモリー使用状況検査を無効にします (リーク検査も無効にされます)。

uncheck -all

uncheck -accessuncheck -memuse と同じです。

uncheck [functions] [files] [load-objects]

functions files load-objects での suppress all と同じです。

ここでは:

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

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

load-objects は、1 つまたは複数のロードオブジェクト名です。

検査の有効化については、check コマンド を参照してください。

エラーの抑止については、suppress コマンドを参照してください。

実行時検査の概要については、概要を参照してください。

undisplay コマンド

undisplay コマンドは、display コマンドを取り消します。

ネイティブモードの構文

undisplay {expression,... | n ...}

display expression コマンドまたは n, ... 番のすべての display コマンドを取り消します。

n がゼロ (0) に設定されている場合、すべての display コマンドを取り消します。

ここでは:

expression は、有効な式です。

Java モードの構文

undisplay expression, ... | identifier, ...

display expression,... または display identifier, ... コマンドを取り消します。

undisplay n, ...

n, ... 番の display コマンドを取り消します。

undisplay 0
すべての display コマンドを実行します。

すべての display コマンドを取り消します。

ここでは:

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

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

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

unhide コマンド

unhide コマンドは、hide コマンドを取り消します。ネイティブモードでだけ有効です。

構文

unhide {regular-expression | number}

スタックフレームフィルタ regular_expression を削除するか、スタック フレーム フィルタ番号 number を削除します。

number がゼロ (0) に設定されている場合、すべてのスタックフレームフィルタを削除します。

ここでは:

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-typenameexcluded リストから削除します。

unintercept -x -a[ll]

すべての種類の送出を excluded リストから削除しま す。

unintercept

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

ここでは:

included-typename および excluded-typename は、List <int>unsigned short などの例外型指定です。

unsuppress コマンド

unsuppress コマンドは、suppress コマンドを取り消します。ネイティブモードでだけ有効です。

構文

unsuppress

suppress コマンドと unsuppress コマンドの履歴 (-d オプションと -reset オプションを指定するものは含まない)。

unsuppress -d

デバッグ用にコンパイルされなかった関数で抑止解除されているエラーのリスト。このリストは、ロードオブジェクト単位です。ほかのすべてのエラーを抑止するには、suppress コマンドに -d オプションを付けて使用します。

unsuppress -d errors

errors をさらに抑止解除することによって、全ロードオブジェクトに対するデフォルト抑止を変更します。

unsuppress -d errors in load-objects

errors をさらに抑止解除することによって、load-objects のデフォルト抑止を変更します。

unsuppress -last

エラー位置における現在のエラーを抑止解除します。

unsuppress -reset

デフォルト抑止マスクとしてオリジナルの値を設定します (起動時)。

unsuppress errors

あらゆる場所における errors を抑止解除します。

unsuppress errors in [functions] [filename ...] [load-objects]

関数のリスト、ファイルのリスト、ロードオブジェクトのリストにおける errors を抑止します。

unsuppress errors at line

line における errors を抑止解除します。

unsuppress errors at "filenames" line

filenamesline における errors を抑止解除します。

unsuppress errors addr address

場所 address における errors を抑止解除します。

ここでは:

errors は、1 つまたは複数のエラー名です。

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

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

line は、行番号です。

load-objects は、1 つまたは複数のロードオブジェクト名です。

unwatch コマンド

unwatch コマンドは、watch コマンドを取り消します。ネイティブモードでだけ有効です。

構文

unwatch {expression | n}

watch expression コマンドまたは n 番の watch コマンドを取り消します。

n がゼロ (0) に設定されている場合、すべての watch コマンドを取り消します。

ここでは:

expression は、有効な式です。

up コマンド

up コマンドは、呼び出しスタックを main に向かって上方向に移動します。このコマンドの構文および機能は、ネイティブモードと Java モードで同じです。

構文

up [-h [number]]

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

number を指定した場合、コールスタックの number レベルだけ上方向に移動します。

–h を指定した場合、呼び出しスタックを上方向に移動しますが、非表示フレームをスキップしません。

ここでは:

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

use コマンド

use コマンドは、ディレクトリ検索パスの表示や変更を行います。ネイティブモードでだけ有効です。

このコマンドは古いため、次の pathmap コマンドにマッピングしてあります。

use は、pathmap -s と同じです。

use directory は、pathmap directory と同じです。

watch コマンド

watch コマンドは、すべての停止ポイントの式を、その停止ポイントでの現在のスコープ内で評価して出力します。式は入力時に分析されないので、式の正確さをすぐに確認できません。watch コマンドはネイティブモードだけで有効です。

構文

watch

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

watch [-r|+r|-d|+d|-S|+S|-p|+p|-L|-fformat|-Fformat|-m|+m|--] expression

expression の値を、すべての停止ポイントで表示します。フラグの意味については、print コマンドを参照してください。

ここでは:

expression は、有効な式です。

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

whatis コマンド

ネイティブモードでは、whatis コマンドは式の型、型の宣言、またはマクロの定義を出力します。該当する場合は、OpenMP のデータ共有属性情報も出力します。

Java モードでは、whatis コマンドは識別子の宣言を出力します。識別子がクラスの場合は、クラスのメソッド (継承されたすべてのメソッドを含む) を出力します。

ネイティブモードの構文

whatis [-n] [-r] [–m] [+m] name

型ではない name の宣言を出力します。または、name がマクロの場合は定義を出力します。

whatis -t [-r] [-u] type

type の宣言を出力します。

whatis -e [-r] [-u] [-d] expression

expression の型を出力します。

ここでは:

name は、型ではない名前またはマクロの名前です。

type は、型名です。

expression は、有効な式です。

macro は、マクロの名前です。

–d は、静的型ではなく動的型を表示します。

–e は、式の型を表示します。

–n は、型ではない宣言を表示します。-n はオプションを指定せずに whatis コマンドを使用したときのデフォルト値であるため、-n を指定する必要はありません。

–r は、基底クラスおよび型に関する情報を出力します。

–t は、型の宣言を表示します。

–n は、型のルート定義を表示します。

–m は、dbxenv 変数 macro_expandoff に設定されている場合でも、マクロ展開を強制します。

+m はマクロ検索を無効にして、マクロで隠蔽されているシンボルが代わりに見つかるようにします。

C++ のクラスや構造体に対して whatis コマンドを実行すると、定義済みメンバー関数すべて、静的データメンバー、クラスのフレンド、およびそのクラス内で明示的に定義されているデータメンバーのリストが表示されます。未定義のメンバー関数は一覧表示されません。

–r (recursive) オプションを指定すると、継承クラスからの情報が追加されます。

–d フラグを –e フラグと併用すると、式の動的型が使用されます。

    C++ の場合、テンプレート関係の識別子は次のように表示されます。

  • テンプレート定義は whatis -t によって一覧表示されます。

  • 関数テンプレートのインスタンス化は、whatis によって一覧表示されます。

  • クラステンプレートのインスタンス化は、whatis -t によって一覧表示されます。

Java モードの構文

whatis identifier

identifier の宣言を出力します。

ここでは:

identifier は、クラス、現在のクラス内のメソッド、現在のフレーム内の局所変数、現在のクラス内のフィールドのいずれかです。

when コマンド

when コマンドは、指定したイベントが発生したときに、コマンドを実行します。

dbx が Java モードで、when ブレークポイントをネイティブコードで設定する場合は、joff コマンドを使用してネイティブモードに切り替えるか、when コマンドの前に native を追加します。

dbx が JNI モードで、when ブレークポイントを Java コードで設定する場合は、when コマンドの前に java を追加します。

構文

when コマンドの一般構文は、次のとおりです。

when event-specification [modifier]{command; ... }

    指定イベントが発生すると、コマンドが実行されます。when コマンドで禁止されているコマンドには次のものがあります。

  • attach

  • debug

  • next

  • replay

  • rerun

  • restore

  • run

  • save

  • step

オプションなしの 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 filename.line-number

filename.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 を引用符で囲みます。

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

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

method-name は、Java メソッドの名前です。

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

全イベントのリストと構文については、イベント指定の設定を参照してください。

指定した下位レベルイベントでコマンドを実行することについては、wheni コマンドを参照してください。

wheni コマンド

wheni コマンドは、指定した下位レベルのイベントが発生したときに、コマンドを実行します。ネイティブモードでだけ有効です。

構文

wheni event-specification [modifier]{command... ; }

指定イベントが発生すると、コマンドが実行されます。

次の構文が有効です。

wheni at address { command; }

address に到達したときに、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

冗長トレースバック、関数の引数と行情報を含みます。

ここでは:

address-expression は、アドレスとなる式またはアドレスとして使用可能な式です。

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

これらのオプションをスレッドや LWP ID と組み合わせると、指定したエンティティーのトレースバックを取得できます。

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

Java モードの構文

where [thread-ID]

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

where -f [thread-ID] number

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

f を指定した場合、フレーム 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] [–m] [+m] name

name の完全修飾形を出力します。

which -t type

type の完全修飾形を出力します。

ここでは:

name は、変数、関数、クラステンプレート、または関数テンプレートなどの、スコープ内のロード可能オブジェクトの名前です。

type は、型名です。

–n は、型以外の完全修飾形を表示します。–n はオプションを指定せずに which コマンドを使用したときのデフォルト値であるため、n を指定する必要はありません。

–t は、型の完全修飾形を表示します。

–m は、dbxenv 変数 macro_expandoff に設定されている場合でも、マクロ検索を強制します。

+m はマクロ検索を無効にして、マクロで隠蔽されているシンボルが代わりに見つかるようにします。

whocatches コマンド

whocatches コマンドは、C++ 例外が捕獲される場所を示します。ネイティブモードでだけ有効です。

構文

whocatches type

type の例外が現在の実行点で送出された場合にどこで捕獲されることになるかを示します (捕獲されるとしたら)。次に実行される文が throw x であり (x の型は type)、これを捕獲する catch 節の行番号、関数名、およびフレーム番号を表示するものとします。

このとき、送出を行う関数の中に捕獲点がある場合には、"type is unhandled" が返されます。

ここでは:

type は、例外の型です。