6

プログラムを実行して例外が発生すると、続行するか中断するかを尋ねられます。

ブレークを選択すると、例外の発生元を確認できますが、ブレークがソース ファイルの 1 つではないライブラリまたはシステム ファイルにある場合 (例外がSystem.pasまたはにあるとします) 、返されるまでControls.pas手動で実行を進める必要があります。F8コードのどの部分で例外が発生したかを確認できます。

これには長い時間がかかる場合があります。

コードで低レベルの例外をキャッチする必要があることはわかっていますが、この例では、例外ハンドラーの 1 つにヒットしていません。

言い方はありますか

  • ファイルXまたはファイルに到達するまで、実行を順方向に実行します
  • プロジェクト固有のファイルに戻るまで。

また、他のコンパイラ/IDEがこれをどのように処理するかについての一般的な好奇心から興味があります。

これを十分に明確にしていない場合は、お詫び申し上げます。

4

3 に答える 3

12

これは、スタック ビューウィンドウを使用して解決できます。

  1. スタック ビュー ウィンドウを開きます ( CTRL+ ALT+ S)。
  2. ブレークポイントを挿入するスタック ビューのメソッドをダブルクリックします。
  3. 呼び出し元メソッドを含むユニットが開き、カーソルが呼び出し元メソッドに配置されます。
  4. ブレークポイントを設定します。
于 2009-04-20T10:42:31.843 に答える
5

Lieven の提案よりもさらに簡単な方法があります。彼がレイアウトした最初の 3 つのステップに従いますが、ブレークポイントを配置しないでください。

ブレークポイントを配置する際の問題は、後でクリアする必要があることです。そうしないと、その行を通過するたびにデバッガーにドロップされてしまいます。特定の行まで実行してからデバッガーに一度ドロップする場合は、カーソルをその行 (マウス カーソルではなく挿入ポイント) に置き、F4 (Run to Cursor) を押します。ワンタイムブレークポイントのようなものです。

于 2009-04-20T12:44:14.203 に答える
3

いくつかの方法があります:

  1. 「次のソース行」機能を使用する (Shift+F7)
  2. コール スタックを使用して必要な関数をダブルクリックし、そこにブレークポイントを追加して [実行] (F9) を押します。
  3. 独自のコードに戻るまで、「ステップ アウト」(Shift+F8) 機能を使用します。
于 2009-04-20T10:43:50.357 に答える