Windbg no puede hacer frente a la información de depuración que generará -g en una instalación de mingw. Sin embargo, supuestamente puede hacer frente a los símbolos COFF.
Si los archivos fuente de su DLL son lo suficientemente pequeños, probablemente pueda obtener información de depuración COFF para compilar (-gcoff en lugar de -g).
Por lo tanto, Windbg puede (supuestamente) manejar símbolos COFF y GCC puede generarlos. Entonces, debería ser fácil a partir de ahí, ¿verdad? Intentaba hacer exactamente esto con un ejecutable Win32 generado por Visual Studio 2008 que estaba cargando un archivo DLL compilado gcc. Desafortunadamente para mí, compilar con -gcoff no funcionó. El gcc de Mingw no generará símbolos COFF para proyectos con más de 64k líneas de código. La DLL que estaba usando era distintivamente más grande que las líneas de código de 64K. Tristemente, tengo que admitir que me rendí y recurrí a la confiable OutputDebugString. De lo contrario, podría dar más instrucciones completas. No me apetecía investigar la opción de hacer símbolos gcc do COFF para archivos fuente más grandes, o la opción alternativa de escribir una extensión de depuración para analizar los datos DWARF o STABS en las tablas internas de símbolos de windbg.
¡He solucionado el problema, por cierto!
Otras sugerencias se pueden encontrar en in this forum post at windbg.info.
Perfecto, lo intentaré. – Kristofer
Me encantaría saber si funcionó, o qué más se las arregló para hacer en su lugar si no fuera así. – Pete
En una nota relacionada, el generador de perfiles Very Sleepy funciona muy bien con los símbolos de depuración creados con -gstabs –