java debugging computer-science

java - ¿Cuál es el principio de depuración?



debugging computer-science (3)

Esta pregunta ya tiene una respuesta aquí:

Aprendí a programar por un par de años y utilicé la depuración con frecuencia. Pero todavía no entiendo el principio básico de la depuración , ¿cómo funciona? ¿Cómo se implementa la depuración de la línea única?

Tomemos el lenguaje java por ejemplo.

¿Qué hace la CPU para la implementación de la depuración?

¿Qué hace JVM para la implementación de la depuración?

¿Qué hace eclipse para la implementación de la depuración?

Es posible que las tres cosas que enumeré anteriormente no tengan nada que ver con la depuración . Solo lo adiviné. He buscado en Google durante un tiempo y no he ganado nada útil para mí (por supuesto, la depuración es complicada), espero una interpretación más simple.

Gracias.


Cada procesador tiene su propio diseño de mecanismo de depuración.

Para el caso de la CPU x86, el procesador tiene 6 registros de depuración que almacenan los puntos de interrupción y las condiciones de interrupción de la depuración. Eche un vistazo a este artículo para el mecanismo de depuración de la CPU Intel x86: http://en.wikipedia.org/wiki/X86_debug_register

Para el caso del mecanismo de depuración de Java, consulte: http://docs.oracle.com/javase/7/docs/technotes/guides/jpda/architecture.html como lo señaló Mukul Goel en el flujo de comentarios debajo de la pregunta.


Con el fin de facilitar la depuración (utilizando puntos de ruptura y demás), el compilador inserta cierta información adicional en la salida cumplida que genera (es decir, el archivo binario o el archivo de código de bytes JVM en el caso de Java). Esta información adicional permite asignar cada línea de la salida compilada al archivo fuente correspondiente.

No he respondido todas las partes de tu pregunta, pero espero que sea suficiente para ayudarte a comenzar. Echa un vistazo a estos recursos:

http://en.wikipedia.org/wiki/Debug_symbol

¿Cómo funciona un depurador?