FbEdit debug addin バージョン 1.0.1.4 ベースのヘルプ
デバッグ情報を解析する方法を理解する上で、SARG さんの FB DEBUGGER 証拠の概念掲示を参考にさせていただきました。
(
https://www.freebasic.net/forum/viewtopic.php?t=10244)
SARG さんに、感謝いたします。
FbDebug addin:
全てを一気にデバッグすると、情報が過剰になってしまいます。
このデバッグ・アドインは、vb.net や VB6 のデバッガとよく似たように作動します。
このデバッグ・アドインは、他のFreeBASICデバッガと異なり、区切り点(ブレークポイント)に到達するまでは、デバッグする exe は通常の速度で走ります。
このため、大きいサイズのプロジェクトや、ウインドウズの GUI プロジェクトのように、イベント駆動アプリケーションでも、快適にデバッグすることができます。
制限:
-デバッグできるのは、-g オプションでコンパイルされた状態の exe だけです。
-配列の中の変数の値を点検できません。配列の中の変数を確認したい場合は、イミディエイト・ウインドウが使えます。
(メニューの「表示」→「イミディエイト」で、左下ペインの「Output」に表示されます。)
また、FbEdit の出力窓に値を表示させるのに OutputDebugString api を使うこともできます。
また、プロジェクトを、-g オプションなしでコンパイルすると、これは働きます。
-イミディエイト・ウインドウ:
zstring サイズで、デバッグ情報が制限されているために、zstring の配列は、サポートされません。
割り当てられた文字列スペースより、長い文字列変数を設定できません。
-ライブラリをデバッグできません。
-デバッグ dll は、まだサポートされていません。
-OOP は、簡単にテストして、OK のようです。
-FbEdit debug addin は、FbEdit のバージョン1.0.6.2 以降で使えます。
ブレークポイント(区切り点):
-プロジェクトから開いた場合は、ブレークポイント(区切り点)はプロジェクト・ファイルに保存されます。
-designtime では、コードが存在しない線の上でも、ブレークポイント(区切り点)を指定できます。
しかし、このブレークポイント(区切り点)は、有効になりません。
この点に、注意して下さい。
ランタイムのときに、ブレークポイント(区切り点)を、コードを作成行の設定するようにして下さい。
変数を点検:
-マウスを変数の上に動かして、現在の範囲の変数の値を点検できます。(配列の場合は、次元を表示するだけです。)
-イミディエイト・ウインドウを使って、変数の値を表示させることができます。
例:
? x とすれば、x の値を出力します。
-また、FbEdit の出力ウィンドウに値を表示させるために、OutputDebugString api をコードに挿入することもできます。
-監視
一度に最大30の変数を、見ることができます。
例:
Watch x、y、z とすると、変数x、y、z を監視します。
変数の値が変わると、赤色で表示されます。
スレッド:
FbDebug は、一度に1つのスレッドしかデバッグできません。
デバッガが扱う最初のブレークポイント(区切り点)は、どんなスレッドをデバッグするかを決定します。
デバッグされたスレッドが終わると、新しいスレッドをデバッグできます。
デバッグメニュー:
-ブレークポイント(区切り点)の入り切り
ブレークポイント(区切り点)を設定するか、または消去します。
-ブレークポイント(区切り点)を消去
現在のファイルの、すべてのブレークポイント(区切り点)を消去します。
-走行
実行を始めます。
実行は、ブレークポイント(区切り点)で止まります。
保存していないソースファイルがあるかどうか、また、何かソースファイルが exe より新しいかどうか注意して下さい。
また、有効にならなかったブレークポイント(区切り点)があるかどうか、注意して下さい。
-停止
実行を終えます。
-ステップ・Into
「ステップ・Into」は、Sub または関数の呼び出しを含むステップを、選び出します。
-ステップ・オーバ
「ステップ・オーバ」は、Sub か関数の呼び出しを、跳び越します。(ブレークポイント(区切り点)が、ない場合)
-キャレットまで実行
実行は、キャレットの有る現在行で止まります。(ブレークポイント(区切り点)が、ない場合)
-デバッグしない
Sub と関数をデバッグに入れないようにします。(オプションで対象を選択できます。)
Sub と関数は適切に働いていて、デバッグから除くことができると確信しているとき、これは役に立ちます。
また、スレッドでアプリケーションをデバッグするとき、役に立ちます。
スレッドの Sub と関数をデバッグに入れないようにすると、スレッドは、全速で実行できるようになります。
-イミディエイト・ウインドウ
イミディエイト・ウインドウで、現在の範囲の変数の値を表示するか、または設定できます。
例:
?x 変数 x の値を表示します。
x=99 変数 x に、99 の値を設定します。
また、以下のように fb 関数の limitted numper を 評価することができます:
Asc, Len, InStr, InStrRev
Str, Chr, Left, Right, Mid, Space, String
例:
?Asc("A") 65 を表示します。
サポートしている演算子:
Eqv, Imp, Xor, Or, And, Not, =, <>,< , >, <=, >=, +, -, Shr, Shl,
Mod, \, *, /, ^, &
例:
?(1+2)*3 9 を表示します。
また、Watchを変数に追加できます。
変数の値が変化すると、赤色で表示されます。
例:
Watch x,y,z
Dump 命令で、すべての変数の一覧を表示できます。
Dump MyUdt とすると、MyUdtのすべてのメンバーの一覧を表示します。
例:
Dump RECT 一覧を表示します。
LEFT As Integer
TOP As Integer
RIGHT As Integer
BOTTOM As Integer
Added Files 命令
Added Files 命令で、全てのファイルを表示します。
Debug / Break
プログラムが、繰返しでハングしている場合に、有効です。
FPU と MMX 登録画面
デバッガは現在、特定の例外で壊れます。