Depurar con NetBeans es la forma más eficaz de identificar errores en tu código y entender paso a paso el funcionamiento de tus programas.
El proceso de depuración (debug) se lleva a cabo añadiendo puntos de interrupción y comprobaciones en el código y ejecutándolo en el depurador. Esto permite ejecutar el código línea a línea y examinar el estado de la aplicación para detectar cualquier error.
Paso 1
Abrir el programa de NetBeans. Cuando se cargue el programa, ejecutar el proyecto que se desea depurar.
Se puede personalizar el depurador de Java eligiendo Herramientas (tools) > Opciones (options) y haciendo clic en la ficha Depurador de Java. Aquí permite:
• Establecer comandos de punto de interrupción personalizados
• Establecer filtros de paso para especificar las construcciones de lenguaje que se filtran durante el paso a paso
• Creación y edición de formateadores de variables
• Modificación de las opciones del depurador visual

Paso 2
Crear un punto de interrupción en alguna línea del programa.
Se puede realizar de varias maneras:
- Margen donde aparecen los números de líneas > breakpoint → toggle line breakpoint

- Pulsando encima del margen, se añade el punto de interrupción de forma automática.
- Menú Depurar (debug) > toggle line breakpoint

→ Para eliminar un breakpoint se pulsa encima del mismo.
Para eliminarlos todos: botón derecho en la ventana de breakpoints -> Delete All
Para desactivar un breakpoint, botón derecho sobre la marca roja -> breakpoint -> desmarcar Enable.
→ Para añadir un breakpoint condicional:
Podemos hacer que la depuración se detenga en un breakpoint solo si se cumple una determinada condición o si la línea de código se ha ejecutado un número determinado de veces.
→ Para fijar un breakpoint condicional:
Botón derecho sobre el breakpoint -> Breakpoint > Properties

Paso 3
Una vez añadido algún punto de interrupción, se debe ejecutar en modo depuración. Esto se realiza sobre el proyecto o sólo sobre el archivo actual:
• Menú debug > «Debug nombreArchivo»
• Pulsando la combinación de teclas: Ctrl + shift + F5
• Icono «Debug Main Project»:
![]()


Al llegar la ejecución al punto de interrupción establecido, se destaca en color verde la línea de código en la que se encuentre la ejecución del programa.

Paso 4
A partir del momento en que se para la ejecución del programa se puede continuar con la ejecución línea a línea utilizando la opción “Step over”:
• Pulsando la tecla F8
• Menú «Debug > Step over»

• Icono «Step over»:
![]()
Así se va mostrando en verde la línea ejecutada en cada momento, y se van actualizando en la ventana inferior los valores que van tomando las variables.
En la parte superior se pueden ver todos los iconos para depuración:
• Step over expression (shift F8): permite continuar con cada llamada a método en una expresión y ver los parámetros de entrada, así como los valores de salida resultantes de cada llamada a método. Si no hay más llamadas a método, Step Over Expression se comporta como el comando Step Over.
![]()
• Step Into (F7): ejecuta una línea de código. Si la instrucción es una llamada a un método, salta al método y continúa la ejecución por la primera línea del método.
![]()
• Step Out (Ctrl + F7): ejecuta una línea de código. Si la línea de código actual se encuentra dentro de un método, se ejecutarán todas las instrucciones que queden del método y se vuelve a la instrucción desde la que se llamó al método.
![]()
• Run to Cursor (F4): se ejecuta el programa hasta la instrucción donde se encuentra el cursor.
![]()
• Continue (F5): la ejecución del programa continúa hasta el siguiente breakpoint. Si no existe un breakpoint se ejecuta hasta el final.
![]()
• Finish Debugger Mayúsculas + F5) en rojo : Termina la depuración del programa. E icono Pausa (pause) en naranja que lo pausa.
![]()
Paso 5
En el proceso de debug se usan varias ventanas situadas bajo la ventana de código. Algunas aparecen automáticamente.
Para que se muestren hay que pulsar Windows-> Debugging y seleccionar la que queramos.

Paso 6
En la parte inferior se muestra la ventana de las variables locales, en la que se puede ver el contenido de las variables de forma dinámica.
En esta ventana se muestran las variables, su tipo y su valor actual.
El debugger permite cambiar el valor de una variable local en esta ventana y continuar la ejecución del programa usando el nuevo valor de la variable.

Paso 7
Para obtener el valor de una variable durante la depuración de un programa se sitúa el ratón sobre la variable y se mostrará, el depurador mostrará el tipo y el valor de la variable.
Otra forma de monitorizar el valor de una variable es mediante un watch.
Para agregar un watch a una variable o una expresión, selecciona la variable o expresión a supervisar y a continuación clic en Debug-> New Watch.
O clic botón derecho sobre la variable-> New Watch.
Las variables a las que se les ha asignado un watch aparecen en la ventana Watches.

Paso 8
Para mostrar la barra de herramientas del depurador, ya que solo aparece cuando iniciamos la depuración, en View -> Toolbars -> Debug.

Enlaces visitados para la elaboración del post:
https://docs.oracle.com/netbeans/nb82/netbeans/NBDAG/run_debug_japps.htm#BABFIEHC
https://netbeans.apache.org/front/main/help/getting-started/
https://www.bouraspage.com/repository/articles-java/debugging-java-programs-with-netbeans-ide
https://puntocomnoesunlenguaje.blogspot.com/2014/11/netbeans-debugger-java.html