デバッガー
デバッガーは、エラーを発見したり、メソッドの実行を監視する必要がある場合に便利です。 デバッガーを使って、コードをステップごとにゆっくり確認して情報を検証することができます。 このようにメソッドをステップごとに確認する処理はトレースと呼ばれます。
デバッガーの呼び出し
デ バッガーを開くには、次のような方法があります:
- シンタックスエラーウィンドウ で トレース ボタンをクリックする。
TRACE
コマンドを使用する。- メソッド実行ウィンドウで デバッグ ボタンをクリックする、またはコードエディターで 実行してデバッグ ボタンを選択する。
- メソッド実行中に Alt+Shift+右クリック (Windows) または Ctrl+Option+Cmd+クリック (Macintosh) をおこない、表示されるポップアップウィンドウ内でトレースするプロセスを選択する:
- ランタイムエクスプローラーのプロセスページにてプロセスを選択した後、トレース ボタンをクリックする。
- コードエディターウィンドウ、またはランタイムエクスプローラーのブレークおよびキャッチページでブレークポイントを作成する。
デバッガーウィンドウは、現在トレースしているメソッドまたはクラス関数の名前や、デバッガーが表示される原因となったアクションの情報を表示します。 上のウィンドウの例では、次の情報が表示されています:
- 現在トレースされているメソッドは Clients_BuildLogo メソッドです。
- デバッガーウィンドウが表示されているのは、キャッチコマンドの対象に設定された
C_PICTURE
コマンドへの呼び出しが検出されたためです。
新しいデバッガーウィンドウの表示には、同じセッション内で表示された最後のデバッガーウィンドウと同じ構成 (ウィンドウのサイズと位置、分割線の配置および式評価エリアの内容) を使用します。 複数のユーザープロセスを実行した場合には、それぞれのプロセスを個別にトレースできます。つまり、各プロセスにつき 1つのデバッガーウィンドウを表示できます。
デバッガーウィンドウは、一般的にそのコードが実行されているマシン上に表示されます。 シングルユーザー版アプリケーションの場合、デバッガーは常にアプリケーションを実行しているマシン上に表示されます。 クライアント/サーバー版アプリケーションの場合は:
- ローカルで実行されているコードの場合には、リモート4D 上に表示されます。
- サーバー上で実行されているコード (サーバー上で実行 オプションがつけられたメソッド) の場合には、サーバーマシン上に表示されます。
- ヘッドレスモードで実行中のサーバーでは、デバッガーウィンドウを表示することはできません。この場合はリモートデバッガーを使用する必要があります。 リモートマシンからのデバッグ 参照。
- 運用環境で Qodlyページをデバッグする必要がある場合は、Qodly Studio のデバッガーを 4D Server アプリケーションで有効化する こともできます。
ツールバーボタン
デバッガ ーウィンドウの上部にある実行制御ツールバーには、デフォルトショートカットが設定された複数のボタンがあります:
デフォルトのショートカットは、環境設定ダイアログボックスのショートカットページで変更できます。
トレース終了
トレースが停止され、通常のメソッド実行が再開されます。
Shift + F5 または Shift を押しながら トレース終了 ボタンをクリックすると、実行が再開されます。 この操作により、以降のカレントプロセスでの全ての TRACE 呼び出しが無効になります。
次行に進む
現在のメソッド行 (プログラムカウンターと呼ばれる黄色い矢印で示されている行) が実行されます。 その後、デバッガは次の行に移動します。
"次の行に進む" ボタンは、サブルーチンや関数に移動することはなく、現在トレースの対象となっているメソッドのレベルにとどまります。 呼び出されるサブルーチンや関数もトレースしたい場合には、呼び出しメ ソッドもトレース ボタンを使用します。
リモートデバッグにおいて、メソッドがサーバー上で実行されていた場合には、メソッドの最後の行の実行後にその親メソッドが呼ばれます。 その時、親メソッドがリモート側で実行されていた場合には、このボタンは トレース終了 ボタンと同じように振る舞います。
呼び出しメソッドもトレース
別のメソッド (サブルーチンまたは関数) を呼び出す行が実行される時にこのボタンを使用すると、呼び出されたメソッドがデバッガーウィンドウに表示され、ステップ実行できます。
デバッガーウィンドウの 呼び出し連鎖エリア では、新しく呼び出されたメソッドがカレント (一番上) となります。
別のメソッドを呼び出していない行が実行される場合には、このボタンは 次行に進む ボタンと同じように振る舞います。
呼び出し元に進む
サブルーチンや関数をトレースしている場合にこのボタンをクリックすると、現在トレース中のメソッド全体を実行し、呼び出し元メソッドに戻ることができます。 デ バッガーウィンドウは、コールチェーンの一つ前のメソッドに戻ります。 トレース中のメソッドがコールチェーンの最後のメソッドである場合には、デバッガーウィン ドウが閉じられます。
リモートデバッグにおいては、メソッドの最後の行の実行時に、サーバー上でメソッドが実行されている場合には、親メソッドが呼び出されます。 その時、親メソッドがリモート側で実行されていた場合には、このボタンは トレース終了 ボタンと同じように振る舞います。
別プロセスもトレース
新しいプロセスを作成する (New process コマンドを呼び出す) 行を実行する際にこのボタンを使用すると新しいデバッガーウィンドウが表示され、作成されたプロセスでトレースを続行することができます。 新しいプロセスを作成しない行を実行する際には、このボタンは 次行に進む ボタンと同等に動作します。
中断
メソッドは中断され、メソッドの実行を開始する前の状態に戻ります。
- イベントに対して実行しているフォームメソッドまたはオブジェクトメソッドをトレースしている場合には、いずれの場合にも停止され、フォームに戻ります。
- アプリケーションモードから実行しているメソッドをトレースしていた場合には、停止後そのモードに戻ります。
中断&編集
コードエディターウィンドウが開いて、中断&編集 ボタンがクリックされた時点で実行していたメソッドを表示します。
Tip: このボタンは、コードにどのような変更が必要かが明らかであり、メソッドのテストを続行するためにその変更が必要な場合に使用してください。 変更が完了したら、メソッドを再実行できます。
編集
コードエディターウィンドウが開いて、編集ボタンがクリックされた時点で実行していたメソッドを表示します。
このボタンをクリックしてメソッドを編集した場合には、現在の実行は中断されないため、編集内容の反映は次回実行時になります。
Tip: このボタンは、コードに必要な変更内容がわかっている場合で、その変更がコードの残り部分の実行やトレースの妨げにならない場合に使用します。
設定保存
現在のデバッガウィンドウの構成を、デフォルト構成として保存します。 構成には次の内容が含まれます:
- ウィンドウのサイズと位置
- 分割線の配置および式評価エリアの内容
これらは、プロジェクト内に保存されます。
このアクションはリモートデバッグモードでは利用できません (リモートマシンからのデバッグ 参照)。
ウォッチエリア
ウォッチエリア は実行コントロールツールバーの下、デバッグウィンドウの左上隅に表示されます。 次に例を示します:
このエリアはリモートデバッグモードでは使用できません。
ウォッチエリア には、システム、4D環境、および実行環境について役立つ一般情報が表示されます。
式 欄には、要素や式の名前が表示されます。 値 欄には、要素や式に対応する現在の値が表示されます。 エリア右側の値をクリックすると、その値が変更可能な場合には、要素の値を修正できます。
テーマ、テーマサブリスト (あれば)、テーマ項目は、いつでも カスタムウォッチエリア にドラッグ&ドロップすることができます。