¿Cuántas llamadas a OutputDebugString
hay en su proyecto? Puede usar el cuadro de diálogo "Buscar en archivos" para encontrarlos todos, y si no son demasiados, no debería haber un problema.
De lo contrario, podría, por supuesto, utilizar una búsqueda y reemplazar y reemplazar todos OutputDebugString(
con raise Exception.Create(
.
También puede escribir una función
procedure OutputDebugString(const Str: string);
begin
raise Exception.Create(Str);
end;
en una unidad utilizada por cualquier otra unidad en el proyecto. Si solo se declara esta nueva unidad después de Windows.pas
en la lista uses
, se usará esta nueva función en lugar de Windows.pas.
actualización
Sí, se puede colocar puntos de interrupción en el interior windows.pas. Primero, en su proyecto, vaya a Opciones del proyecto, y bajo Depuración, seleccione "Usar DCU de depuración". A continuación, puede ir a windows.pas y colocar un punto de ruptura en la línea 30769:
procedure OutputDebugString; external kernel32 name 'OutputDebugStringW';
Demasiados repartos entre proyectos y componentes ... Ni siquiera estoy seguro de si el mensaje proviene de un código propio o de un tercero. – Harriv
Sí, depurar DCU lo hace. Ahora solo tengo que averiguar cómo establecer la condición ... – Harriv
si no es su código, pero alguna unidad que use (indirectamente) la llamada también podría ir a OutputDebugStringA. – Remko