2012-08-13 25 views
8

Cuando ejecuto mi programa (es cierto que fue construido en modo de depuración), aparece un error "Excepción externa 80000003".¿Cómo deshacerse de la excepción 80000003?

Según Win32 Exception/Access Violation Errors que significa 0x80000003 EXCEPTION_BREAKPOINT A breakpoint was encountered.

Sin embargo, no existen puntos de corte establecidos en el IDE y estoy corriendo fuera del IDE.

Sí, tengo el ejecutable correcto. Eliminé todos los puntos de interrupción, limpié mi proyecto y lo construí de nuevo, pero todavía ese cuadro de diálogo. Incluso borré el .exe, construido de nuevo, lo vi aparecer donde lo esperaba. Verificó la marca de tiempo en el .exe. Agregué un cuadro de mensaje a FromCreate() y lo vi, más "Excepción externa 80000003".

¿Cómo hago que desaparezca (construyendo en modo de depuración)?


D'oh !! Era código viejo y olvidé que en realidad había codificado esto en una condición de error asm int 3 end;, por supuesto, que señala un punto de interrupción para el IDE (o para Windows, si el IDE no se está ejecutando, de ahí el cuadro de error). Disculpas por perder tiempo.

+1

Totalmente comprensible. Me han mordido cosas similares yo mismo. Y he dejado 'raise exception.create ('todo escriba este código')' en el código que pensé que había terminado de escribir también. –

+0

+1 Gracias, @warren. Es bueno saber que incluso los expertos son falibles ;-) – Mawg

Respuesta

7

Un punto de interrupción es esencialmente una instrucción a nivel de máquina (¿código de operación?) Que hace que el procesamiento de la CPU se pause y se genera una señal de tipo de excepción. Esto generalmente es recogido por el sistema operativo y luego en algún proceso de usuario como un depurador o simillar.

Cuando he tenido esto, casi siempre ha sido cuando mi código saltó a algún espacio de datos. Digo casi siempre que he codificado los puntos de interrupción en el código de forma accidental al depurar algunas pesadillas de vez en cuando también (!).

Edit: Como dice @Ken blanca int 3 (el punto de interrupción de interrupción) es la que he usado para codificar :-)

primero que quiero hacer es conseguir un seguimiento de la pila y el trabajo backwords.

+0

Un buen punto (+1), y muy probable con mi código C :-) pero seguramente menos probable con Delphi? Sin embargo, intentaré comentar el código, poco a poco, o agregar más cuadros de mensaje y ver en qué dos aparece este error para ayudarme a localizarlo. Gracias – Mawg

+1

No he usado Deplhi pero dado que no es código administrado, siempre asumiría que puedo saltar lugares si uso el equivalente de punteros a función. –

+0

Delphi es básicamente Pascal. Si bien puede tener punteros, tienes que pasar por aros para usarlos, y yo no. Es por eso que creo que es poco probable que mi código salte al segmento de datos (además de que sigue funcionando bien después de ese mensaje). – Mawg

Cuestiones relacionadas