礒山賢司 ISOYAMA, Kenji
| “デバッグ”って? |
|---|
| 神出鬼没で厄介なヤツ |
|---|

| どんなバグがあるか? |
|---|
| まずは設計の見直し |
|---|

| (1) | (2) | (3) | ||
| 状態 | Text1にフォーカスがある | Text2にフォーカスがある | Endにフォーカスがある |
|
| イベント | ||||
| GotFocus | 値のクリア | 値のクリア | NOP | |
| Validate | エラーあり→(1) エラーなし→(2) |
エラーあり→(2) エラーなし→(3) |
NOP | |
| Click | NOP | NOP | Text1、Text2未入力→(1) Text1がエラー→(1) Text1がエラー→(2) エラーなし→End |
|
| そして机上デバッグ! |
|---|
| それでもだめなら、IDEの機能を利用する |
|---|

| アイコン | 名前 | 機能 |
| 開始/実行/継続 | アプリケーションの実行を開始する。アプリケーションが中断モードの場合には、アプリケーションの実行を再開する | |
| 中断 | ブレークポイントに到達した際と同様に、アプリケーションの実行を中断する | |
| 終了 | 実行中のアプリケーションを終了する | |
| ブレークポイントの設定/解除 | アプリケーションのコード行に対し、ブレークポイントの設定と解除を行なう | |
| ステップイン | アプリケーションの次の実行可能なコードを実行する。プロシージャを呼び出す場合、そのプロシージャ内でも1ステップずつ実行する | |
| ステップオーバー | アプリケーションの次の実行可能なコードを実行する。プロシージャを呼び出す場合、そのプロシージャ全体を1ステップとして実行する | |
| ステップアウト | 現在のプロシージャを最後まで実行し、呼び出し元のプロシージャで次の行へ進む | |
| ローカル | アプリケーションが中断モードの場合に、[ローカル]ウィンドウにローカル変数の現在の値を表示する | |
| イミディエイト | アプリケーションが中断モードの場合に、[イミディエイト]ウィンドウでコードを実行したり、値を調べることができる | |
| ウォッチ | [ウォッチ]ウィンドウでは、選択された式の値を表示する | |
| クイックウォッチ | アプリケーションが中断モードの場合に、式の現在の値を表示する | |
| 呼び出し履歴 | アプリケーションが中断モードの場合に、呼び出されているが、まだ完了していないプロシージャの一覧を表示する |
| ステートメント/プロパティ | 機能 |
| Debug.Assert | Assertメソッドが記述されている行で、メソッドに指定された条件にしたがってプログラムの実行を中断します |
| Debug.Print | イミディエイトペイン内に数値、文字列などを出力します。引数に複数の式を指定する場合は、各式の間をスペースまたはセミコロン (;) で区切ります |
| Stop | Stop ステートメントは、プロシージャ内の任意の場所に置くことができます。Stop ステートメントは、プログラムコードの「ブレークポイント」と同じ働きをします |
| On Error〜 | エラー処理ルーチンを有効にし、プロシージャ内でのエラー処理ルーチンの位置を指定します。エラー処理ルーチンを無効にするときに使うこともできます |
| LastDLLErrorプロパティ | 最後にダイナミックリンクライブラリ (DLL) を呼び出したときのエラーコードを返します。値の取得のみ可能です |

| いっそのこと、デバッグ機能を作ってみよう |
|---|
99/11/07 午後 9:11:09 txtInput1 GotFocus 99/11/07 午後 9:11:11 txtInput1 LostFocus:Text=aaaaaaa 99/11/07 午後 9:11:11 txtInput2 GotFocus 99/11/07 午後 9:11:13 txtInput2 LostFocus:Text=bbbbbbb 99/11/07 午後 9:11:16 Loop Cnt= 1:Ans= 1 99/11/07 午後 9:11:16 Loop Cnt= 2:Ans= 3 99/11/07 午後 9:11:16 Loop Cnt= 3:Ans= 6 99/11/07 午後 9:11:16 Loop Cnt= 4:Ans= 10 99/11/07 午後 9:11:16 Loop Cnt= 5:Ans= 15 99/11/07 午後 9:11:16 Loop Cnt= 6:Ans= 21 99/11/07 午後 9:11:16 Loop Cnt= 7:Ans= 28 99/11/07 午後 9:11:16 Loop Cnt= 8:Ans= 36 99/11/07 午後 9:11:16 Loop Cnt= 9:Ans= 45 99/11/07 午後 9:11:16 Loop Cnt= 10:Ans= 55 99/11/07 午後 9:11:19 Program End |
| 最後の奥の手デバッグツール |
|---|
| 最後に |
|---|