Combien d'appels à OutputDebugString
sont là dans votre projet? Vous pouvez utiliser la boîte de dialogue "Rechercher dans les fichiers" pour tous les trouver, et s'ils ne sont pas trop nombreux, il ne devrait pas y avoir de problème.
Sinon, vous pouvez - bien sûr - utiliser une recherche et remplacer et remplacer tous OutputDebugString(
par raise Exception.Create(
.
fonction Vous
procedure OutputDebugString(const Str: string);
begin
raise Exception.Create(Str);
end;
pourrait également écrire dans une unité utilisée par toutes les autres unités dans le projet. Si seulement cette nouvelle unité est déclarée après Windows.pas
dans la liste uses
, cette nouvelle fonction sera utilisée à la place de celle de Windows.pas.
Mise à jour
Oui, vous pouvez placer des points d'arrêt à l'intérieur Windows.pas. Tout d'abord, dans votre projet, allez dans Options du projet, et sous Débogage, sélectionnez "Utiliser les DCU de débogage". Ensuite, vous pouvez aller à Windows.pas et placer un point d'arrêt à la ligne 30769:
procedure OutputDebugString; external kernel32 name 'OutputDebugStringW';
Trop de propagation à travers le projet et les composants .. Je ne suis même pas sûr si le message provient de code propre ou tiers. – Harriv
Oui, le débogage DCU le fait. Maintenant, j'ai juste besoin de comprendre comment régler la condition .. – Harriv
si ce n'est pas votre code, mais une unité que vous utilisez (indirectement) l'appel pourrait également aller à OutputDebugStringA. – Remko