デバッガ

 

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 登録画面

デバッガは現在、特定の例外で壊れます。

 


この Top に戻る↑ トップページに戻る


Copyright © 2008-2021 WATANABE Makoto. All rights reserved.