VB6.0用掲示板の過去のログ(No.1)−VBレスキュー(花ちゃん)
[記事リスト] [新規投稿] [新着記事] [ワード検索] [過去ログ] [管理用]

投稿日: 2003/12/26(Fri) 14:05
投稿者ak
Eメール
URL
タイトルデバッグ方法

> > 最初に言っておきますが、エンドユーザーの事を『アホ』と言うのは如何なものかと
> > 思いますよ。
>
> 私としたことが・・・とんだ失言を。すいません
> 私の場合のユーザー(エンドユーザー)=同期社員(狭義) 広義では全社員です。
> お客様などを対象にしている発言ではありません、しかも会社からは技術者としても見てもらえません
> (しかし大人としは失格ですので以降気をつけます)
> デバックの件ですが、QueryUnloadイベントにブレークポイントの設定などいろいろ試しているのですが
> このイベント自体で中断してくれまへん・・・全てのフォーム中にEndステートメントも記述していない
> し・・・デバックの仕方が悪いんでしょうね〜 もう少しやれる所までテストしてみます。

ブレイクポイントを張る方法だとイベントを取られる可能性があるのでログファイルをはくかDebug.Printで
出力する方が良いと思います。また実行ファイルにしなければでないバグもありますので気を付けてください。

参考までに私が良くやるデバッグの例を記述しておきます。
'(*.frm)
Private Sub Form_Initialize()
    Call gsbLogOutput(Me.Name & ":Form_Initialize")
End Sub

Private Sub Form_Load()
    Call gsbLogOutput(Me.Name & ":Form_Load")
End Sub

Private Sub Form_QueryUnload(Cancel As Integer, UnloadMode As Integer)
    Call gsbLogOutput(Me.Name & ":Form_QueryUnload:Cancel=" & Cancel & ":UnloadMode=" & UnloadMode)
End Sub

Private Sub Form_Unload(Cancel As Integer)
    Call gsbLogOutput(Me.Name & ":Form_Unload:Cancel=" & Cancel)
End Sub

'(*.bas)
Private Const DEBUG_LOG_PATH = "C:\Test.log"
'----------------------------------------------------------------------------------
'概要      :ログ出力
'パラメータ    :変数名        ,IO ,型        ,説明
'          :sValue        ,I  ,Boolean   ,出力する値
'          :[bFileOutput] ,I  ,Boolean   ,ファイル出力 True:有効 False:無効
'          :[bTimeStamp]  ,I  ,Boolean   ,タイムスタンプ付加 True:有効 False:無効
'説明      :ボタンの有効・無効を指定された状態にする
'----------------------------------------------------------------------------------
Public Sub gsbLogOutput(ByVal sValue As String, Optional bFileOutput As Boolean = True, _
                        Optional bTimeStamp As Boolean = True)
    Dim iFl As Integer
    
    If bTimeStamp Then sValue = Format(Now, "YYYY/MM/DD HH:MM:SS") & vbTab & sValue
    
    If bFileOutput Then
    
        iFl = FreeFile
        
        Open DEBUG_LOG_PATH For Append As #iFl
        
        Print #iFl, sValue
        
        Close #iFl
        
    Else
    
        Debug.Print sValue
        
    End If
    
End Sub

このようなログをはく関数を作っておけばデバッグの時にかなり助かります。

根気の要る作業ですが頑張ってください。

では。


- 関連一覧ツリー (★ をクリックするとツリー全体を一括表示します)

- 返信フォーム (この記事に返信する場合は下記フォームから投稿して下さい)

- Web Forum -