Tuve un gran problema con los puntos de interrupción no afectados en una DLL Delphi 6 DirectShow. Cargaría el DLL (AX) en el IDE y lo ejecutaría con Graph Edit como el programa Host y no se activaría ninguno de los puntos de interrupción. Traté de mover la DLL de FastMM4 al directorio del proyecto, eliminé FastMM4 por completo, activé y desactivaba las DCU de depuración, limpiaba los directorios del proyecto, anulaba el registro y volvía a registrar la DLL, todo lo que podía pensar. Nada funcionó. Cada vez que ejecuté el programa de host, vi mi carga de DLL con el mensaje "Sin información de depuración" en el visor de eventos. Luego, en una desesperada búsqueda en Google me encontré con un post para C++ Builder que recomienda probar el "símbolos de depuración remota" opción del vinculador:Puntos de ruptura de DLL que no se golpean con la opción de "símbolos de depuración remota", ¿por qué y cualesquiera riesgos de seguridad con esos?
Proyecto -> Opciones -> Linker (Tab) -> exe y opciones DLL (cuadro de grupo) -> "Incluir los símbolos de depuración remota" (marcado)
De repente, mis puntos de ruptura comenzaron a ser afectados. Aquí están mis preguntas:
1) ¿Por qué funcionó esto? ¿Es por la opción o porque esta opción desencadenó alguna otra operación del Compilador/Enlazador que corrigió las cosas? Me gustaría saber para poder solucionar este problema de manera confiable en el futuro cuando vuelva a suceder.
2) ¿Son los símbolos de depuración remota algo que un programador hostil podría usar para rastrear profundamente mi programa? En otras palabras, ¿son un riesgo de seguridad si se los deja tirados?
No luches, publica el código fuente. – OnTheFly
¿Qué versión de Delphi? Los Delphis antiguos no son tan buenos para depurar archivos DLL. A veces he encontrado necesario colocar el host exe en la misma carpeta que el DLL. Sin duda, debería ser suficiente compilar el archivo DLL con opciones de depuración estándar. No hay necesidad de símbolos remotos. –
@DavidHeffernan. Delphi 6. –