アプリケーションで「T」を出力する「不正な」OutputDebugString呼び出しがありますが、それを見つけることはできません。
OutputDebugString 関数にブレークポイントを設定して、どこから呼び出されているかを確認することはできますか?
Delphi 2009 を使用しています。
アプリケーションで「T」を出力する「不正な」OutputDebugString呼び出しがありますが、それを見つけることはできません。
OutputDebugString 関数にブレークポイントを設定して、どこから呼び出されているかを確認することはできますか?
Delphi 2009 を使用しています。
OutputDebugString
あなたのプロジェクトには への呼び出しがいくつありますか? 「ファイル内を検索」ダイアログを使用してそれらをすべて見つけることができます。数が多すぎなければ問題はありません。
それ以外の場合は、もちろん、検索を使用して置換し、すべてOutputDebugString(
をに置換できraise Exception.Create(
ます。
関数を書くこともできます
procedure OutputDebugString(const Str: string);
begin
raise Exception.Create(Str);
end;
プロジェクト内の他のすべてのユニットで使用されるユニットで。この新しいユニットのみがリストWindows.pas
の後に宣言されているuses
場合、Windows.pas の代わりにこの新しい関数が使用されます。
はい、Windows.pas 内にブレークポイントを配置できます。まず、プロジェクトで [プロジェクト オプション] に移動し、[デバッグ] で [デバッグ DCU を使用] を選択します。次に、Windows.pas に移動して、30769 行目にブレークポイントを配置します。
procedure OutputDebugString; external kernel32 name 'OutputDebugStringW';
終わり。
これで、アプリケーションから OutputDebugString を呼び出すと、ブレークポイントで中断されます。ブレークポイント プロパティでログを有効にして、コール スタックをログに記録することもできます。