Otras respuestas y comentarios a la pregunta ayudaron mucho. Esto es lo que hice.
que se da cuenta de que si corro el programa bajo el depurador de Visual Studio que sólo termina en silencio, pero si me quedo sin depurador se bloquea con un cuadro de mensaje (cuadro de mensaje de Windows habitual decir que he perdido mis datos no guardados y todo el mundo es tan lo siento).
Así que comencé el programa sin depurador, lo dejé colgar y luego, mientras el cuadro de mensaje todavía estaba allí, adjunté el depurador y presioné "Salir". Aquí está la pila de llamadas:
[email protected]()
[email protected]() + 0xc bytes
[email protected]() - 0x48 bytes
[email protected]() + 0x18 bytes
faultrep.dll!StartDWException() + 0x5df bytes
faultrep.dll!ReportFault() + 0x533 bytes
[email protected]() + 0x55c bytes
//SomeThirdPartyLibraryFunctionAddress
//SomeThirdPartyLibraryFunctionAddress
//SomeThirdPartyLibraryFunctionAddress
//SomeThirdPartyLibraryFunctionAddress
//OurCodeInvokingThirdPartyLibraryCode
por lo que obviamente es un problema dentro de la biblioteca de la fiesta tripartita. De acuerdo con MSDN, se llama al UnhandledExceptionFilter()
en situaciones fatales y claramente la llamada se realiza debido a algún problema en el código de la biblioteca. Intentaremos resolver el problema primero con el proveedor de la biblioteca.
¿es multiproceso o de un solo hilo? – Simone
@Simone: un hilo de trabajo, varios hilos de servicio generados por RPC. Probamos la sincronización a fondo, es poco probable que el problema sea el multihilo. – sharptooth
¿Está ejecutando una versión de lanzamiento o una versión de depuración? He visto casos extraños de versiones de lanzamiento que no se detienen en el depurador. –