VCL を使用してデバッグする場合 (debug dcus must be on を使用してください)、アセンブリ コード、特に "_IntfClear" などのルーチンをステップ実行することが非常に頻繁に発生します (状況によってはほとんどの場合)。
(System.pas を削除しても、system.pas の場所を尋ねるポップアップが頻繁に表示されるため、役に立ちませんでした)
ユニット「システム」をデバッグから除外する機会はありますか?
Delphi に含まれる DCU ファイルは、Libフォルダにあります。デバッグ バージョンは、Lib/Debugフォルダーにあります。「Use debug DCUs」オプションは、これら 2 つのフォルダーのどちらをプロジェクトのライブラリ パスに表示するかを制御するだけなので、プログラムがリンクされると、どちらか一方の DCU ファイルのセットが含まれます。
「Use debug DCUs」オプションの魔法を明らかにしたので、それを利用することができます。特定の DCU をデバッグから除外するには、[Use debug DCUs] を有効にしてから、問題のユニットのデバッグ バージョンを見つけて、非デバッグ バージョンに置き換えます。たとえば、Lib/Debug/System.dcuを削除し、 Lib/ System.dcuに置き換えます。
または、トレースしたい VCL ユニットが 1 つあるが、作成していないコードのデバッグには関心がない場合は、[Use debug DCUs] を無効にしてから、その DCU のデバッグ バージョンを見つけて、非デバッグ ファイル。
興味のない関数を誤ってトレースしてしまった場合は、Shift+を押しF8て現在の関数から「ステップ アウト」することができます。最終的には、トレースしたくない呼び出しに通常つながる場所を認識できるようになり、F8そのコードに「ステップ イン」する代わりに「ステップ オーバー」するように押すようにF7なります。