2

ランタイム Delphi パッケージに依存する JVCL プラグイン システムを使用するプロジェクトを構築していますが、それをプロジェクトに追加して以来、ソースにステップ トレースできなくなったため、デバッグは悪夢になりました。 VCL または RTL ユニット。それらはすべてデバッガーで灰色の点としてマークされ (関連する関数がコール スタックにまったく表示される場合。非常に奇妙な結果が得られる場合もあります)、それが私を夢中にさせています。デバッグ DCU 機能を元に戻す方法を知っている人はいますか? (明らかなことは別として: プラグイン関連のコードをすべて削除します。それは機能しますが、実際には役に立ちません。)

編集:明確にするために、プロジェクト内の他のものをトレースできます。JVCL コード。その他のサードパーティ ライブラリ。私自身のコード。すべてがデバッガーで問題なく表示されます。Delphi RTL および VCL コードではなく、コンパイラ オプション「use debug DCUs」がアクセスを許可するはずのものです。

4

3 に答える 3

7

これは設計どおりに機能しています。

パッケージを使用してビルドする場合、DCU を使用せずにパッケージ コードを実行します。したがって、DCU はコンパイルされており、Debug DCU にはアクセスできません。

パッケージを完全にオフにするか、デバッグする特定のパッケージでコンパイルしないようにすることができます。使用するパッケージと使用しないパッケージを選択でき、使用しないパッケージはデバッグ DCU で「デバッグ可能」になります。

于 2008-11-03T08:25:02.997 に答える
3

パッケージは単なるDLLです。それらをデバッグできるようにするには、デバッグ情報をそれらに含める必要があります。これは、実行したいことです。したがって、デバッグdcusではなく、VCLおよびRTL用のDEBUGパッケージが必要になります。ビルド済みパッケージを使用する場合、デバッグdcusはもう必要ありません。

于 2008-11-03T03:42:29.230 に答える
0

お使いの DCU が古くなっている可能性があるため、デバッガーはコードにステップインしません。

通常、すべての DCU を削除してから Build All を実行すると、これが修正されます。

念のため、検索パス内の DCU も削除する必要がある場合があります。もちろん、最初にバックアップを作成してください...

于 2008-11-03T01:26:09.067 に答える