idbx ツールを使用したデバッグ

idbx ツールを使用してコマンド行からプログラムをデバッグするための手順。

このタスクについて

ユーザーはコマンド・プロンプトで「idbx」コマンドを呼び出すことで idbx ツールを実行できます。これにより、ユーザーは UI ワークベンチを使用することなく、プログラムをデバッグできます。

$ idbx testProg
コマンド・リスト
assign <variable> = <expression>
変数に式の値を割り当てます。
clear <line-number>
行番号で指定されたすべてのブレークポイントおよびトレースを除去します。
注: delete も参照してください。
cont <signal-number>
cont <signal-name>
停止したところから実行を継続します。シグナルが指定されている場合、プロセスはシグナルを受信したかのように続行されます。それ以外の場合、プロセスは停止しなかったかのように続行されます。
delete <status-number>
delete all
delete tskip [ for t<thread number> ]
特定の番号や、指定されたスレッドの残りの tskip カウントに対応する trace または stop が除去されます。trace、stop、および残りのスレッド tskip カウントに関連付けられた番号は status コマンドを使用して表示できます。
disable <status-number>
disable
特定の番号に対応した trace または stop が使用不可にされます。trace および stop に関連付けられた番号は status コマンドを使用して表示できます。
down
down <count>
up
up <count>
ネーム解決に使用される現行の関数をスタックの上方または下方に <count> レベル移動します。デフォルトの <count> は 1 です。
enable <status-number>
enable all
特定の番号に対応した trace または stop が使用可能にされます。trace および stop に関連付けられた番号は status コマンドを使用して表示できます。
goto <line-number>
goto "<filename>" : <line-number>
gotoi <address>
プログラム・カウンターを <address> または <line-number> 前後のアドレスに変更します。現行の関数外への goto が要求される場合は、変数 unsafegoto を設定する必要があります。
help
help [> <filename> ]
help <command> [> <filename> ]
help <topic> [> <filename> ]
コマンドまたはトピックに関する情報を印刷します。(トピックを記述する文字列は短縮化できます。)長いメッセージはデフォルトの「pg」別名を使用してページごとに表示できます。例: "pg" (help set_variables)。
注: 「pg」は現在サポートされていません。
注: ファイルへのリダイレクトは現在サポートされていません。
list [ <source-line-number> [, <source-line-number> ]]
list <procedure>
現行ソース・ファイルで 1 番目の行番号から 2 番目の行番号までの行をリストします。行が指定されていない場合、次の 10 行がリストされます。プロシージャーまたは関数の名前が指定された場合は、行 n-k から行 n+k までがリストされます。n はプロシージャーまたは関数中の最初のステートメントであり、k は listwindow によって定義されます。
listi
listi [ <address> [ , <address> ]]
listi at <source-line-number>
listi <procedure>
現行のプログラム・カウンターの位置、または特定のアドレス、行番号、あるいはプロシージャーから命令をリストします。表示される命令の数は、dbx の内部変数 listwindow で制御されます。
move <source-line-number>
list コマンドによって表示される次の行を source_line_number に変更します。
next
next <count>
次の行まで実行します。count が指定された場合、次の count 個の行が実行されます。このコマンドと「step」との違いは、行にプロシージャーまたは関数への呼び出しが含まれる場合に「step」コマンドはブロックの先頭で停止しますが、「next」コマンドは停止しないことです。
nexti
nexti <count>
「next」と同じように単一ステップですが、ソース行ではなく単一の命令を実行します。count が指定された場合、次の count 個の命令が実行されます。
print <expression> [ , <expression> ]
print <procedure (<parameters>)
指定された式の値を表示します。汎用レジスターと浮動小数点レジスターの値もこのコマンドを使用して表示できます。
「print <procedure> (<parameters>)」では、プロシージャーに関連付けられたオブジェクト・コードが実行され、戻り値が表示されます。
名前は、まず現行の関数の静的スコープを使用して解決され、名前が静的スコープに定義されていない場合は動的スコープを使用して解決されます。静的検索および動的検索で結果が得られない場合は、任意のシンボルが選択され、メッセージ「[using <qualified-name>]」が表示されます。"module.variable" のようにブロック名で識別子を修飾することで、ネーム解決プロシージャーを上書きすることができます。C では、ソース・ファイルは「.c」なしのファイル名のモジュールとして処理されます。
prompt
prompt "string"
dbx プロンプトを表示するか、プロンプトを「string」に変更します。
quit
dbx を終了します (プログラムが終了します)。
registers
汎用レジスター、システム制御レジスター、浮動小数点レジスター、ベクトル・レジスター、および現在の命令レジスターのすべての内容を表示します。浮動小数点レジスターを表示するには、"unset noflregs" dbx サブコマンドを使用します
次の事前定義されたレジスター名を使用してレジスターを個々に割り当てたり、表示したりできます。r0 から $r31 は汎用レジスター、fr0 から $fr31 は浮動小数点レジスター、sp、iar、cr、および link はそれぞれスタック・ポインター、プログラム・カウンター、条件レジスター、およびリンク・レジスターです。
run [<arguments>] [< <filename> ] [> <filename> ]
[>> <filename> ] [>! <filename> ]
[2> <filename> ] [2>> <filename> ]
[>& <filename> ] ]>>& <filename> ]
rerun [<arguments>] [< <filename> ] [> <filename> ]
[>> <filename> ] [>! <filename> ]
[2> <filename> ] [2>> <filename> ]
[>& <filename> ] ]>>& <filename> ]
コマンド行引数として引数を渡し、オブジェクト・ファイルの実行を開始します。< または > シェルのような方法で入力または出力の宛先を変更するために使用できます。rerun を引数なしで使用すると、直前の引数リストがプログラムに渡されます。それ以外の場合、rerun は run と同じです。
注: run および rerun コマンドへの引数は現在サポートされていません。
return
return <procedure>
<procedure> への return が実行されるまで継続するか、何も指定されない場合は現在のプロシージャーが return するまで継続します。
set <name>
set <name> = <expression>
set コマンドは dbx 変数の値を定義します。これらの変数名が、デバッグするプログラム内の名前と競合することはできません。また、これらの変数名は他のコマンド内の対応する式に展開されます。set 変数定義を除去するには、unset を使用します。事前定義された set 変数の定義については、help set_variables も参照してください。
skip [<num>]
再開して次のブレークポイントを無視します。「num」が指定された場合は、次の「num」ブレークポイントを無視します。
status [> <filename> ]
status more [> <filename> ]
関連する dbx サブコマンドと、スレッド tskip カウントの残りを使用して、現在活動状態にある trace および stop コマンドを表示します。
step
step <count>
1 行実行します。count が指定された場合、次の count 個の行が実行されます。 このコマンドと next との違いは、行にプロシージャーまたは関数への呼び出しが含まれる場合に step コマンドではそのプロシージャーまたは関数が開始されますが、next コマンドでは開始されないことです。
注: 参照先: set_variables stepignore
stepi
stepi <count>
単一の命令を実行します。count が指定された場合、次の count 個の命令が実行されます。
!stop if <condition>
stop at <line-number> ![if <condition>]
stop in <procedure> ![if <condition>]
!stop <variable> [if <condition>]
!stop <variable> at <line-number> [if <condition>]
!stop <variable> in <procedure> [if <condition>]
!stop on load ["<module>"] [if <condition>]
!stop on load ["<module>(<member>)"] [if <condition>]
指定の行に到達するか、プロシージャーまたは関数が開始されるか、変数が変更されるか、モジュールがロード/アンロードされるか、条件が true の場合に、実行を停止します。
注: ! は現在サポートされていません。
unset <name>
<name> に対する定義を除去します
whatis <name>
指定された名前の宣言を表示します。
where [startframe endframe] [> <filename>]
活動状態のプロシージャーおよび関数のスタック・トレースのうち、開始フレームから終了フレームまでのフレーム番号に関連するものを表示します。詳細スタック・トレースには、stack_details を設定します。
visual <hostname> <port-number>
IDBX デバッガーを、UI デーモンの指定ホストおよびポートで UI ワークベンチに接続します。

フィードバック