第6章 アプリケーションをデバッグし よう よう
6.1 デバッグの概要
6.1.2 デバッグの進めかた
実際にサンプルプログラムを使ってデバッグの進めかたについて説明します。
サンプルプログラムでは、以下のようにデバッグを進めていきます。
1. デバッグするプロジェクトを開く 2. デバッグを開始する
3. 中断点を設定する 4. 実行する
5. 中断位置でデータを参照する
6. 中断位置までの呼び出し経路を確認する 7. デバッグを終了する
デバッグするプロジェクトを開く
「アプリケーションを作成しよう(→p49)」で作成した、商品の合計金額を計算す るサンプルプログラム"Table1.ppj"を表示します。同様のサンプルプログラムは、
"Table¥Table1.ppj"に格納されています。
本節では、サンプルプログラム中の[名前を付けて保存]コマンドが選択され たときの処理を検証します。
デバッグを開始する
以下の手順で、デバッグする実行可能プログラムを作成し、デバッガを起動し ます。
1. プロジェクトのプロパティ設定ダイアログボックスで、[ビルド]タブ の[ビルド]モードがデバッグモードになっていることを確認します。
2. リリースモードであった場合、デバッグモードに変更します。
3. [プロジェクト]メニューの[ビルド]コマンドを選択し、デバッグす る実行可能プログラムを作成します。ただし、すでに作成済であれば、
この操作は不要です。
4. [プロジェクト]メニューの[デバッグ]コマンドを選択し、デバッガ を起動します。
→プロジェクトウィンドウがデバッグビューに切り替わり、実行可能プ ログラムがロードされデバッガが起動されたことを示すメッセージが、
アウトプットウィンドウに表示されます。
中断点を設定する
以下の手順で、表コントロールのセルを入力したときに発生するReturnイベン トに中断点を設定します。
1. デバッグツリーウィンドウのメニュー"CfMenu1‑MN‑FILE"中にある
"MN‑SAVEAS"を選択します。
2. ポップアップメニューの[Click]コマンドを選択します。
3. 8行めの「CALL "GET‑FILE‑NAME" USING GET‑STYLE BUTTON‑STATE」と記 述されている行に、カレットを移動します。
4. ポップアップメニューの[中断点の設定]コマンドを選択します。
5. 手続き編集ウィンドウの行番号領域左側に、中断点を示す赤い丸が表示
されていることを確認します。
中断点の設定方法に関する詳細は、「中断点を設定する(→p148)」を参照して ください。
デバッグツリーウィンドウのスクリプトから
"CfMenu1!MN‑FILE!MN‑SAVEAS‑Click"を選択して、ポップアップメニューから 手続きを開くこともできます。また、手続きの入口や出口に中断点を設定す る場合は、手続きを開かずに、ポップアップメニューの[入口に中断点を設 定]または[出口に中断点を設定]コマンドで設定できます。
実行する
以下の手順で、プログラムを実行し、中断点で中断させます。
1. [デバッグ]メニューの[実行]コマンドを選択します。
2. アプリケーションが起動されたら、顧客名を入力し、表にいくつかの商 品コードおよび個数を入力します。
3. アプリケーションの[ファイル]メニューから[名前を付けて保存]コ マンドを選択します。
4. 手続き編集ウィンドウをクリックします。
5. イベント手続き"CfMenu1!MN‑FILE!MN‑SAVEAS‑Click"の8行めの行番号 領域に、右向きの矢印が表示されていることを確認します。
また、以下の手順で1ステップずつ、処理を進めることができます。
1. [デバッグ]メニューの[ステップイン]コマンドを選択します。
2. フォームの共通内部手続き"GET‑FILE‑NAME"が表示され、中断位置を示 す右向きの矢印が、その中の10行め「IF GET‑STYLE = POW‑CDOPEN THEN」
に移動したことを確認します。
3. [デバッグ]メニューの[ステップイン]コマンドを3回選択し、中断 位置を「INVOKE POW‑SELF "GetFileName" USING」と記述された19行め まで進めます。
実行に関する詳細は、「プログラムを実行する(→p152)」を参照してください。
アプリケーションを実行し、中断点に達しても、手続き編集ウィンドウは自 動的にウィンドウの前に出てこない場合があります。その場合は、手続き編 集ウィンドウをクリックし、前に表示されるようにしてください。
データを参照する
以下の手順で、13行めの手続き「MOVE "ファイル名を付けて保存" TO WK‑TITLE」
によって転記されたデータの内容を参照することができます。
1. 19行めに中断している状態で、マウスポインタを21行めの文字列
"WK‑TITLE"の上に移動します。
2. マウスポインタ右下付近に、"WK‑TITLE = ファイル名を付けて保存"と 表示されるのを確認してください。
データの内容は、[デバッグ]メニューの[ウォッチ]コマンドで表示されるダ イアログボックスを使用して参照することもできます。この場合は、以下の手順 で参照します。
1. [デバッグ]メニューの[ウォッチ]コマンドを選択します。
2. [ウォッチの設定]ダイアログボックスの[データ名]に、"WK‑TITLE"と 入力します。
3. プロジェクトウィンドウで、デバッグビューのウォッチウィンドウに
"WK‑TITLE"が追加され、データの内容が表示されることを確認します。
データの参照に関する詳細は、「データを参照する(→p154)」を参照してくださ い。
呼び出し経路を確認する
呼び出し経路ウィンドウを参照することにより、現在中断している手続きが、
どこから呼び出されたものなのか確認することができます。
このサンプルプログラムで、上記のデータを参照している時点で呼び出し経路 ウィンドウを参照すると、現在中断している手続き"GET‑FILE‑NAME"は、イベ ント手続き"CfMenu1!MN‑FILE!MN‑SAVEAS‑Click"から呼び出されていることが 確認できます。
呼び出し経路に関する詳細は、「呼び出し経路を確認する(→p158)」を参照し てください。
デバッグを終了する
デバッグを終了する場合は、[デバッグ]メニューの[デバッグの終了]コマ ンドを選択してください。
デバッグを最初からやりなおす場合は、[デバッグ]メニューの[再デバッグ]
コマンドを選択します。このとき、設定した中断点およびウォッチウィンド ウに設定されたデータは、再デバッグ前の状態のままになります。
ただし、再デバッグはプログラムが終了した状態から開始しなければなりま せん。再デバッグは、プログラムをいったん終了してから行ってください。