UniServer / UniPrint / UniHttpd


デバッグツール(dbgsvr)の使いかた。 by uchi. 99.03.16

EXEでデバッグする場合に、プログラムの内部変数の値をログファイル
や別のウインドウに出力するライブラリです。VB5用です。

特徴

  1. ログファイルはサイクリックになっています。
    (DBG.INIで行数が変更できます。)

  2. デバッグルーチンを組み込んだ状態で起動すると、
    デバッグ情報定義ファイルDBG.INIを自動生成します。
    (デバッグOFFの状態、コメントなしの状態で生成されます。)

  3. ログを画面のみ、ログファイルのみ、両方に出力指示する、
    モードがあります。(DBG.INI内)

  4. デバッグIDNoをを利用してデバッグしたいモジュールごとに
    ID番号を振ることによって、それぞれ、出力ON、OFFを指定できます。
    また、IDそれぞれに覚えがきとして、DBG.INIに定義しておくことが
    できます。

  5. 4の覚えがき(コメント)をプログラム内で取得することができます。

  6. 3、4、5はプログラムが起動中での変更でき、そのまま、反映されます。

  7. ログを画面に出力するとDBG.INIで設定した場合、
    dbgsvr.exe(OLEサーバ)が起動されてデバッグウインドウとして
    動作します。
    複数のプログラムから起動されても、1個のウインドウ、ログファイルに
    書き込まれます。厳密な意味での排他制御は行ってません。


プログラムでの利用方法

  1. プロジェクトへの登録は[ファイルの説明(パッケージ)]を参照してください。

  2. プログラム内で1度、フォームロードあたりで、以下のように
    オブジェクトを生成してください。
    Dim dbg As Object     'パブリックの方が楽かもしれません。
    Set dbg = New clsDbg 'デバッグクラス生成。

  3. 各プロシジャ内での利用方法は以下のとおりです。
    これで、画面もしくはログに出力します。
    dbg.DBGPrint 1, "デバックで出力したい文字列"
    (この例では、IDNO=1で出力文字列="デバックで出力したい文字列")

  4. あと、特定のIDNoのデバッグ状態は、以下の方法で取得できます。
    変数 = dbg.getDBGNoMode(2)
    (この例では、IDNO=2の情報を変数に代入しています。)

  5. あと、特定のIDNoのコメント(DBG.INIで定義された)も取得できます。
    変数 = getDBGNoComment(3)
    (この例では、IDNO=3のコメント情報を変数に代入しています。)

  6. プロジェクトのプロパティの実行形式のコンパイルスイッチで
    サーバ(OLE)版(画面、ログあり)と(画面なしでログのみ)版に
    コンパイルすることができます。
    DBGServer = 1          ' サーバ版(dbgsvr.exeをOLE起動します。)
    DBGServer = 0          ' サーバ版なし
  7. あとは、TESTディレクトリのサンプルを参考にしてください。

ファイルの説明(パッケージ)

DBGINIデバッグ定義ファイル(EXEと同じ場所にできます。)
          (なければ作成されますが。コメントは入りません。)
DBGLOGデバッグ情報ログファイル(なければ作成されます。)
DBGCLS利用者はVBのプロジェクトに入れて下さい。
DBGBAS利用者はVBのプロジェクトに入れて下さい。
DBGSVREXEデバッグサーバー
(Windows\systemに入れてダブルクリックします。)



ファイルの説明(デバッグサーバソース類)

DBGSVRVBPデバッグサーバー用
FRMDBGFRMデバッグサーバー用ウインドウのフォーム
FRMDBGFRXデバッグサーバー用ウインドウのフォーム
DBGSVRCLSデバッグサーバー用クラス(OLE呼び出し用)
DBGSVRBASデバッグサーバー用クラス間グローバル変数
READMETXTこのファイル
TESTテスト用サンプル



デバッグ情報定義ファイルDBG.INIの定義の方法

  1. セクション[DBG]
    ===============================================
    Mode=OFF ; デバッグ全体ON/OFFできます。(一度にON・OFFできる。)
    --------------------------------------------------------------------
          ON     : デバッグ出力する。
          OFF    : デバッグ出力しない。
    ===============================================
    Show=ON   ; デバッグ情報の出力先を指定します。
    --------------------------------------------------------------------
          ON     : デバッグウインドウ表示&ログ出力
          ONLINE : デバッグウインドウ表示画面にのみ出力
          OFF    : ログのみ出力
    ===============================================
    MaxLine=1000 ; ログファイルのサイクリック行数を指定します。
    ===============================================
    LogFile=dbg.log  ;デバッグログファイル名(inifile.bas経由)
    ===============================================
    MaxDBGNo=100      ;デバッグするID数(最大 999)
    ===============================================
    TimeFormat=yy/mm/dd hh:nn:ss   ;デバッグ時のタイムスタンプ形式
    ===============================================

  2. セクション[DBGNo]
    デバッグID数分定義します。(多くて大変なときは、一度DBG.INIを
    消して自動生成させれば、100個分作成します。)

      0001=1 支払計画登録画面デバッグ
      0002=1 デバッグコメント2
      0003=2 デバッグコメント3
      0004=1
      0005=0
      0006=0
       ↑ ↑ ↑
       | | デバッグコメント(getDBGNoCommentでプログラム内で取得できます。)
       | ID個別のモード 1以上からログ出力ONになります。
       | (getDBGNoModeでプログラム内で取得できます。)
      デバッグIDNoです。DBGPrintするときのIDNOです。

DBG.LOGの見方

  1. セクション[DBG_log]
    NowLine=172  ; 現在のデバッグ出力の最後の位置(編集しないで!)
  2. セクション[Log] 
    ここにログが保存されます。

開発Tips

 

Copyright © UTL Co.,Ltd. All Rights Reserved. [UTL]