5

デバッガーはエラー時にソースコードにステップインしますが(のようにF7)、Delphiの基本的なDCU(ライブラリ)がコードにコンパイルされるだけで、ソースがデバッグに使用されない通常の動作モードを復元したいと思います。

たとえば、私のプログラムでエラーが発生した場合、デバッガーはControls.pasにステップインしますTControl.Click。通常の場合(インストール直後)は、Delphiがこれらのメソッドをステップオーバーする場合です。

デバッグ情報なしでControls.pasを再コンパイルする必要がありますか?もしそうなら、どのように?


理解を深めるために、このテーマを追加情報で拡張します。

マウスに問題があるDelphi6Prof.を使用しています(システムエラーコード5)。したがって、Controls.pasに再コンパイルして、マウス位置ゲッターコードを置き換えます。それで:

  1. そのためのフォルダを作成しました: "c:\ D \ Common \ Delphi_Patches \ Delphi_6 \"
  2. オリジナルのControls.pasをその中に入れました。
  3. Controls.pasを変更し、位置ゲッターコードを置き換えました。
  4. Delphiのライブラリパスを設定し、最初のフォルダを「c:\ D \ Common \ Delphi_Patches \Delphi_6\」に設定します

これらの手順で、マウスセーフコードを使用してソースをコンパイルできます。

わかりました。しかし、Delphiは毎回F7のControls.pasにステップインしますが、例外はあります。これは非常に「怒りっぽい」ものです。

ライブラリパスから「Controls.pas」を削除しても、デバッガーはその元の「Controls.pas」を見つけて開きます... :-(

どのコードでも「UseDebugDCU-s」は使用しません。

コンパイラオプションから「デバッグ情報」を削除しようとしましたが、Delphiが元のControls.pasを開きます...

だから私はDelphiへの道を探します。「Controls.pas」に足を踏み入れるのではなく、私のdcuを使用します...

これが問題を理解するためのより良いコンテキストを提供することを願っています。

4

4 に答える 4

8

Shift+ Ctrl+ F11(ツール/オプション)必要があると思います。次に、コンパイラで[デバッグDCUを使用]のチェックを外します...その後、例外が発生しても、RTLまたはVCLソースに侵入しません。

于 2012-08-22T14:47:37.023 に答える
4

独自のバージョンのDelphiユニットをコンパイルしているため、そのユニットのデバッグ情報を無効にすることができます。{$D-}問題のユニットのソースコードに追加します。

于 2012-12-10T17:53:22.873 に答える
2

私が見るように、解決策は次のとおりです。

  1. 新しいControls.pasのみを使用するプロジェクトを作成します。

  2. コンパイラオプションの「デバッグ情報」オプションの設定を解除します。

  3. dcuを構築する

  4. dcuをライブラリフォルダに入れます

  5. このライブラリフォルダから新しいControls.pasを非表示にします。

このトリックで、controls.pasに「ステップイン」することはできません。

よろしく:dd

于 2012-10-05T08:25:34.337 に答える
0

DelphiXE8でも同じ問題が発生しました。

「プロジェクト>>オプション>>コンパイル>>デバッグ.dcusを使用」のチェックを外すと、システムユニットなどへのトレースが続行されます。

これを停止する最善の方法は、XML形式のApplication.dprojファイルを開くことです。その中で、次のように設定を変更できます。

<PropertyGroup Condition="'$(Cfg_1_Win32)'!=''">
    <DCC_AssertionsAtRuntime>false</DCC_AssertionsAtRuntime>  <--- note false
    <DCC_DebugDCUs>false</DCC_DebugDCUs>
    <VerInfo_Locale>1033</VerInfo_Locale>
    <VerInfo_IncludeVerInfo>true</VerInfo_IncludeVerInfo>
    <DCC_RemoteDebug>false</DCC_RemoteDebug>
</PropertyGroup>
于 2017-08-28T06:57:57.833 に答える