Estoy intentando depurar un problema en una DLL escrita en C que sigue causando violaciones de acceso. Estoy usando Visual C++ 2008, pero el código es directo C.¿Cómo puedo hacer que el depurador de VC++ se salga de las excepciones?
Estoy acostumbrado a Delphi, donde si se produce una excepción mientras se ejecuta bajo el depurador, el programa inmediatamente pasará al depurador y le dará una oportunidad de examinar el estado del programa. En Visual C++, sin embargo, todo lo que obtengo es un mensaje en la pestaña Salida:
First-chance exception at blah blah blah: Access violation reading location 0x04410000.
Sin interrupciones, nada. Simplemente va y desenrolla la pila hasta que está de vuelta en mi Delphi EXE, que reconoce que algo está mal y me alerta allí, pero en ese punto he perdido varias capas de la pila de llamadas y no sé lo que está pasando.
He intentado otras técnicas de depuración, pero lo que sea que esté ocurriendo es tener lugar dentro de un ciclo anidado dentro de una macro C que se llama más de 500 veces, y eso es un poco más de mi habilidad (o mi paciencia) para seguimiento a través de.
Me imagino que tiene que haber alguna forma de obtener la excepción de "primera oportunidad" para realmente darme una "oportunidad" de manejarlo. Probablemente haya alguna configuración de configuración de "interrupción inmediata en excepciones de primera oportunidad" que desconozco, pero que no parece ser tan reconocible.
¿Alguien sabe dónde está y cómo habilitarlo?
Gracias. Eso funciono. Me pregunto por qué la Infracción de acceso no está marcada de manera predeterminada ... –
@Mason: No hay problema. No creo que ninguno de ellos esté marcado por defecto. Supongo que hay una penalización de rendimiento bastante significativa cuando se habilita "break on exception" (aunque realmente no lo sé). –
No lo creo. No sé C++ todo muy bien, pero en Delphi, la penalización de rendimiento es cero hasta que realmente se rompe en uno, y cuando (si) lo hace, eso generalmente significa que algo salió mal y el depurador está exactamente donde quieres ser. –