最初にコンポーネント パッケージを見つけて開き、ランタイムとデザインタイムの両方のパッケージ ビルド オプションを [リリース] から [デバッグ] に変更し (まだ変更されていない場合)、再ビルドします。
次に、両方のパッケージ プロジェクトを含むプロジェクト グループを保存します (1 つの設計時と 1 つのランタイム。一部の例外的なケースでは、設計時とランタイムが 1 つにまとめられた 1 つのパッケージしかありません)。
次に、手順に従って BDS.exe をホスト アプリケーションとして設定します。
OutputDebugString
壊れていることがわかっているコンポーネントにいくつかのメッセージを追加したくなるでしょう:
コンストラクタ:
constructor TMyComponent.Create(AOwner:TComponent);
begin
inherited;
// other stuff.
OutputDebugString('Created TMyComponent');
end;
デストラクタ:
destructor TMyComponent.Destroy(AOwner:TComponent);
begin
OutputDebugString('Destructor TMyComponent starts');
inherited;
// other stuff.
OutputDebugString('Destructor TMyComponent finish');
end;
TMyComponent が含まれるユニットのファイナライズ セクション:
finalization
OutputDebugString('Finalization section for Unit MyComponentUnit');
end.
Delphi デバッガーの出力イベント ページを見ると、コードがどこまで到達したかを把握できます。欠陥をかなり正確に特定するために使用できる例外ブレークポイントが得られない場合でも、次のような OutputDebugString メッセージを使用できます。上記、またはDelphi でNon Breaking Breakpointsを設定し、ブレークポイント プロパティ「Break on exception」をオフにして、代わりに「ログ メッセージ」を設定することもできます。これらのメッセージ (ブレークポイント メッセージ) には、デバッグ ツールキットに単純な "print-statement-debug" のような機能を追加するために、コンポーネントに損傷を与える必要がないという利点があります。