Puntos de Interrupción
Los puntos de interrupción (comunmente llamados breakpoints) son puntos (ubicaciones) en el código fuente en los que el depurador detendrá la ejecución del programa al ser alcanzados. Se definen por número de línea, por lo que no es posible indicarle al depurador que debe interrumpir la ejecución entre dos instrucciones de una misma línea. Por esto, es recomendable escribir una instrucción por línea. El depurador detiene la ejecución justo antes de comenzar a ejecutar las instrucciones correspondientes a la línea en cuestión.
Para definir un punto de interrupción puede colocar el cursor sobre la linea en cuestión y utilizar la opción Agregar/quitar Breakpoint del menú Depuración, o hacer click en el margen del mismo en el espacio a la derecha del número de línea. Estos puntos se indican con un círculo rojo en dicho espacio. Los puntos no pueden ser colocados mientras el programa se está ejecutando en el depurador; si cuando su ejecución se ha interrumpido.
Cada vez que se inicia la depuración, el depurador intenta "colocar" los puntos de interrupción en el ejecutable cargado en memoria. Cuando esto no se consigue, ZinjaI marca con gris dichos puntos en los márgenes de los fuentes. Las razones por las que un punto no podría ser colocado pueden ser: porque el objeto que corresponde a ese fuente no tiene información de depuración, porque ese bloque de código no fué compilado (porque no pertenece al programa, o porque el compilador no lo ha incluido para optimizar, por ejemplo si es una función que nunca se invoca), o porque la linea no es válida (una linea del final del archivo que no produzca código ejecutable, como por ejemplo una llave). Si el punto de interrupción es colocado correctamente, puede que la ubicación real del mismo no sea la ubicación definida en el fuente. Esto ocurre cuando se intenta colocar un punto de interrupción en una línea que no produce código ejecutable (por ejemplo, una declaración de variable que no invoca a ningun constructor, o una linea comentada). En estos casos, el depurador colocará el punto en la próxima línea válida.
En ZinjaI, para los puntos de interrupción pueden definirse propiedades adicionales. Esto permite que el programa solo se inturrumpa luego de alcanzar el punto una determinada cantidad de veces, que el programa solo se interrumpa si al alcanzar el punto se cumple determida condición (dada por una expresion a evaluar), que el punto de interrupción se deshabilite automáticamente luego de interrumpirse la ejecución, etc. Para acceder a estas opciones puede utilizar el comando Opciones del Breakpoint del menú Depuracion o hacer click sobre el mismo (el punto rojo/gris en el margen del fuente) manteniendo presionada la tecla Control (ver Dialogo Propiedades del Breakpoint).
Puede observar el estado de los puntos de interrupción activos durante una sesión de depuración mediante el cuadro de Lista de break/watch points. Esta tabla incluye además los Watchpoints definidos. Los watchpoints son un tipo especial de interrupción que no dependen de una ubicación en el código, sino del valor de una variable o expresión (ver Inspecciones).