4D v16.3ソースコードエリア |
||
|
4D v16.3
ソースコードエリア
ソースコードエリア
ソースコードエリアには、トレースされているメソッドのソースコードが表示されます。 メソッドが長すぎてテキストエリアに収まらない場合には、スクロールするとメソッドの他の部分も表示できます。 評価できる式(フィールド、変数、ポインター、配列等)にマウスポインタを移動すると、ツールチップが表示され、オブジェクトや式の現在の値とその宣言型が示されます。 次の図はソースコードエリアを示しています: ツールチップが表示されているのは、マウスポインターが変数pTableの上に置かれているためで、その表示によると、この変数は[Customers]テーブルへのポインターです。 ソースコードエリア内でテキストの部分を選択できます。この場合、選択されたテキストの上にカーソルを移動すると、選択されたオブジェクトの値をTipsとして表示します: 変数名またはフィールドをクリックすると自動的に選択されます。 Tip: ソースコードエリアで選択した式(評価できる)をカスタムウォッチエリアにコピーすることが出来ます。次の方法のいずれかでコピーすることが出来ます:
ソースコードエリアの左マージンにある黄色の矢印(上図を参照してください)は、実行される次の行を表しています。この矢印は、プログラムカウンターと呼ばれます。プログラムカウンターは、常に実行寸前の行を表示します。 デバッグのために、メソッド連鎖のトップにあるメソッド(現在実行されているメソッド)のプログラムカウンターの位置を変更できます。そのためには、黄色の矢印をクリックして目的の行まで上下にドラッグします。 警告: この機能は、十分注意して使用してください。 プログラムカウンターを順方向に移動しても、スキップした行をデバッガーがすばやく実行されるわけではありません。同様に、プログラムカウンターを逆方向に移動しても、既に実行された行の結果をデバッガーが逆方向に実行されるわけではありません。 プログラムカウンターを移動するということは、デバッガーにその位置からのトレースや実行を追跡するように指示するというだけに過ぎません。すべての現在の設定内容、フィールド、変数等には、プログラムカウンターの移動による影響はありません。 プログラムカウンターを移動する例は、次の通りです。例えば、次のようなコードをデバッグすると仮定します: ` ... プログラムカウンターは、行If (This condition)に設定されています。1ステップ先に進むと、プログラムカウンターが行DO SOMETHING ELSEに移動していることがわかります。別の分岐にある行を実行しようとしていたため、これは思いがけないことです。この場合には、This conditionという式が次のステップに影響を与えるような演算を実行していなければ、プログラムカウンタを行DO SOMETHINGに戻します。これで、コードの当初目的としていた部分を続けてトレースすることができます。 デバッグの過程において、コードのトレースを一部スキップすることが必要な場合があります。デバッガでは、特定の位置までコードを実行する方法がいくつか提供されます:
次に、プログラムカウンタを行ALL RECORDS([This Table])に設定し、次のようなコードを実行していると想定してみます: ` ... ここでの目的は、Forループが終了した後で$vrResultの値を評価することです。コードがこの位置まで実行されるにはかなりの処理時間がかかるため、現在の実行をアボートしたくない場合には、TRACEコマンド呼び出しを行If($vrResult..の前に挿入するようにメソッドを編集する必要があります。 ループのステップ処理を実行することも1つの方法ですが、[ThisTable]テーブルに何百件ものレコードが入っている場合には、この処理にかなりの時間を費やすことになります。このような状況では、デバッガのブレークポイントを使用できます。ブレークポイントは、ソースコードエリアの左マージンをクリックすると挿入できます。 例題: このようにすると、その行にブレークポイントが挿入されます。ブレークポイントは赤色の点で表されます。次に、トレースなしボタンをクリックします。 このようにすると、ブレークポイントで示された行まで、通常の実行が再開されます。ブレークポイントで示された行は実行されずに、トレースモードへ 戻ります。この例では、ループ全体は連続して正常に実行されています。そのため、ブレークポイントに到達した時には、マウスボタンを$vrResultの上に移動して、その値をループの終了地点で評価する必要があります。 プログラムカウンタより下方(後に実行される)の行にブレークポイントを設定し、トレースなしボタンをクリックすると、ブレークポイントまでのメソッドをスキップすることができます。 Note: メソッドエディタで直接ブレークポイントを設定することが出来ます。詳しくはブレークポイントを参照してください。 ブレークポイントを追加すると、それはメソッドに保存されます。データベースを再起動してもそこにあります。 永続的ブレークポイントを取り除く方法は、次の2通りです:
ソースコードエリア のコンテキストメニューを使用して、トレースモードでメソッドを実行する際に便利な機能にアクセスできます:
参照
|
プロパティ
プロダクト: 4D
履歴
タグ debugger source code pane ARTICLE USAGE
ランゲージリファレンス ( 4D v16) |