4D v16.3

デバッガ

ホーム

 
4D v16.3
デバッガ

デバッガ  


 

 

デバッガーという用語は、バグという用語に由来しています。メソッド内のバグとは、除去すべき間違いのことです。エラーが発生した場合、またはメソッドの実行を監視する必要がある場合には、デバッガーを使用します。デバッガでは、メソッドをステップごとにゆっくり確認してメソッドの情報を検証できるため、バグを発見するために役立ちます。このようにメソッドをステップごとに確認する処理はトレースと呼ばれます。

次のような方法を使用して、デバッガーウィンドウでメソッドを表示し、トレースできます:

  • シンタックスエラーウィンドウトレースボタンをクリックする。
  • TRACEコマンドを使用する。
  • メソッド実行ウィンドウでデバッグボタンをクリックする。
  • メソッド実行中にAlt+Shift+右クリック (Windows) または Control+Option+Command+クリック (Macintosh) を行い、表示されるポップアップウィンドウ内でトレースするプロセスを選択する:

  • ランタイムエクスプローラーのプロセスページにてプロセスを選択した後、トレースボタンをクリックする。
  • メソッドエディターウィンドウ、またはランタイムエクスプローラーのブレークおよびキャッチページでブレークポイントを作成する。

: データベースのパスワードシステムが有効な場合、デザインモードへのアクセス権を持つグループに所属するDesignerやユーザーだけが、メソッドをトレースできます。

次に示すのはデバッガーウィンドウです:

必要に応じてデバッガーウィンドウを移動したり、その内部にあるウィンドウ枠のサイズを変更したりできます。新しいデバッガーウィンドウの表示には、同じセッション内で表示された最後のデバッガーウィンドウと同じ構成(ウィンドウのサイズと位置、分割線の配置およびカスタム・ウォッチエリアの内容)を使用します。

4Dはマルチタスク環境です。複数のユーザプロセスを実行した場合には、それぞれのプロセスを個別にトレースできます。プロセスそれぞれについて1つのデバッガーウィンドウを表示できます。

デバッガーウィンドウの上部にある実行制御ツールバーには、9個のボタンがあります:

トレースが停止され、通常のメソッド実行が再開されます。

Note: Shift+F5またはShiftを押しながらトレースなしボタンをクリックすると、実行が再開されます。この操作により、以降のカレントプロセスでの全てのTRACE呼び出しが無効になります。

メソッドは中断され、メソッドの実行を開始する前の状態に戻ります。イベントに対して実行しているフォームメソッドまたはオブジェクトメソッドをト レースしている場合には、いずれの場合にも停止され、フォームに戻ります。アプリケーションモードから実行しているメソッドをトレースしていた場合には、 そのモードに戻ります。

アボートボタンががクリックされた時と同様、メソッドは中断されます。さらに、4Dはメソッドエディタウィンドウを開いて、アボート&編集ボタンがクリックされた時点で実行していたメソッドを表示します。

Tip: このボタンは、コードにどのような変更が必要かが明らかであり、メソッドのテストを続行するためにその変更が必要な場合にクリックしてください。変更が完了したら、メソッドを再実行できます。

編集ボタンをクリックすると、アボート&編集ボタンをクリックした場合と同じ動作が実行されますが、現在の実行をアボートしません。メソッドの実行はその時点で一時停止されます。4Dは編集ボタンがクリックされた時点で実行されていたメソッドをメソッドエディタウィンドウで表示します。

重要: このメソッドを修正することはできますが、デバッガウィンドウで現在トレースされているメソッドのインスタンスに対しては、この修正内容は反映されず、実 行もされません。メソッドがアボートされるか、または正常に終了した後、このメソッドが次に実行される時に修正が反映されます。つまり、メソッドへの変更 を有効にするには、メソッドを再ロードしなければなりません。

Tip: このボタンは、コードに必要な変更内容がわかっている場合や、変更が実行やトレースの対象となるコードの残りの部分の妨げにならない場合に使用します。

Tip: オブジェクトメソッドは各イベント毎に再ロードされます。オブジェクトメソッドをトレースしている場合、フォームを終了する必要はありません。オブジェク トメソッドを編集し、変更内容を保存し、フォームに戻って再実行することができます。フォームメソッドのトレースや変更の際に、フォームメソッドを再ロー ドするには、フォームを終了し、再び表示しなければなりません。フォームを大規模にデバッグする場合のコツは、(デバッグの対象となっている)コードを、 フォームメソッドからのサブルーチンとして使用しているプロジェクトメソッドに入力することです。このようにすれば、このサブルーチンがフォームメソッド から呼び出されるたびに再ロードされるため、フォームをトレースし、編集し、再テストしている間もフォームを使用することができます。

現在のデバッガウィンドウの構成(ウィンドウのサイズと位置、分割線の配置およびカスタム・ウォッチエリアの内容)を、データベースが開かれるたび にデフォルトで使用できるように保存することができます。これらの内容は、データベースのストラクチャファイルに保存されます。

現在のメソッド行(プログラムカウンタと呼ばれる黄色い矢印で示されている行)が実行され、デバッガは次の行に移動します。ステップ(同一メソッドのみ)ボタンはサブルーチンや関数に移動することはなく、現在トレースの対象となっているメソッドのレベルにとどまります。サブルーチンや関数呼び出しもトレースしたい場合には、ステップ(呼び出しメソッドもトレース)ボタンを使用します。

別のメソッド(サブルーチンまたは関数)を呼び出す行が実行される場合にこのボタンを使用すると、呼び出されているメソッドがデバッガウィンドウに表示され、このメソッドをステップごとに実行できます。デバッガウィンドウのでは、新しく呼び出されたメソッドがカレント (一番上) となります。別のメソッドを呼び出していない行が実行される場合には、このボタンはステップ(同一メソッドのみ)ボタンと同等に動作します。

新しいプロセスを作成する行(New processコマンドが記述されている行)が実行される場合にこのボタンを使用すると、新しいデバッガウィンドウが表示され、新しく作成されたプロセスのプロセスメソッドをトレースすることができます。新しいプロセスを作成しない行が実行される時には、このボタンはステップ(同一メソッドのみ)ボタンと同等に動作します。

サブルーチンや関数をトレースする場合にこのボタンをクリックすると、現在トレースされているメソッド全体を実行し、呼び出し元メソッドに戻ること ができます。デバッガウィンドウはメソッド連鎖の前のメソッドに戻ります。現在のメソッドがメソッド連鎖の最後のメソッドである場合には、デバッガウィン ドウが閉じられます。

実行制御ツールバーの右側には、デバッガから次のような情報が表示されます:

  • 現在トレースしているメソッドの名前(黒で表示されます)
  • デバッガウィンドウが表示される原因となった問題(赤で表示されます)

先に示したウィンドウの例では、次の情報が表示されています:

  • 現在トレースされているメソッドはDE_DebugDemoメソッドです。
  • デバッガウィンドウが表示されているのは、C_DATEコマンドへの呼び出しが検出され、このコマンドは検出の対象コマンドの1つであるためです。

デバッガとメッセージが表示される理由は次の通りです(赤で表示されます):

  • TRACEコマンド: TRACEの呼び出しが実行されたため。
  • ブレークポイントに到達: ブレークポイントが発見されたため。
  • ユーザによる割り込み: Alt+Shift+右クリック(Windows)またはcontrol+option+command+クリック(Macintosh)を使用するか、あるいはデザインモードのランタイムエクスプローラのプロセスページでトレースボタンをクリックしたため。
  • 次のコールを検出: コマンド名:検出の対象となった4Dコマンドへの呼び出しが実行位置にあるため。
  • 新規プロセスへステップ中: ステップ(別プロセスもトレース)ボタンを使用したため、新しく作成されたプロセス用に開かれたデバッガウィンドウのためこのメッセージが表示される。

デバッガウィンドウは、前述の実行コントロールツールバーとサイズ変更可能な次の4つのペインから構成されます:

最初の3つのエリアでは、操作が簡単な階層型リストを使用して、関連するデバッグ情報を表示します。4番目のソースコードエリアは、トレースされて いるメソッドのソースコードを表示します。それぞれのエリアには、デバッグ作業を支援する独自の機能があります。マウスを使用して、デバッガウィンドウだ けではなく、各エリアも垂直および水平方向にサイズを変更することができます。さらに、最初の3つのエリアには、表示する2つのカラムの間に点線による区 切り線が含まれています。マウスを使用して、この点線を移動し、必要に応じて水平方向にカラムのサイズを変更することができます。



参照 

ON ERR CALL
TRACE
ウォッチエリア
カスタムウォッチエリア
コマンドのキャッチ
シンタックスエラーウィンドウ
ソースコードエリア
デバッガのショートカット
なぜデバッガを使用するか?
ブレークリスト
メソッド連鎖エリア

 
プロパティ 

プロダクト: 4D
テーマ: デバッグ

 
履歴 

 
ARTICLE USAGE

ランゲージリファレンス ( 4D v16)
ランゲージリファレンス ( 4D v16.1)
ランゲージリファレンス ( 4D v16.2)
ランゲージリファレンス ( 4D v16.3)