Eclipse perspectiva debug: comandos
Analizando la interfaz de Eclipse
En el anterior artículo iniciamos por fin la primera depuración de un código php propio. Nos detuvimos en el inicio del código y vimos de forma general la interfaz de Eclipse desde la perspectiva Debug. Vamos a ver ahora un poco más detenidamente las subventanas que vimos en dicha perspectiva.
Si examinamos la primera subventana veremos lo siguiente:
Me voy a centrar en la pestaña Debug. Nos indica que se está depurando karmanynet como Página Web PHP, que es el nombre que pusimos en la configuración de depuración. También observamos el archivo debugeado: karmanynet.php, la función: {main} y la linea donde se encuentra detenido: line 8. Puedes observar una serie de pequeños botones muy importantes que pueden ser ejecutados también desde el menú Run y que voy a mostrar con el título que viene en inglés:
Los vas a tener que usar a menudo, su definición y uso:
- Resume (o pulsar F8): Reanudar. Se utiliza para depurar el código. El debugger parará en el siguiente Breakpoint(BP) que hayas puesto. Esto es muy útil cuando no quieres analizar instrucción por instrucción y quieres que el debugger se pare directamente en una linea donde tienes puesto un BP.
- Suspend: Suspender. Significa detener la ejecución. Imagina que entras en un bucle muy largo. Una forma de detener el depurador sería esta.
- Terminate (o pulsar Ctrl+F2). Terminar. Se utiliza para finalizar la depuración del código sin que se ejecute nada más.
- Step Into (o pulsar F5): "paso en". Significa que se ejecutará instrucción por instrucción pero si el debugger encuentra una función (y/o una subrutina-procedimiento-método), al pulsar Step Into se irá a la primera instrucción de dicha función, entrará en ella.
- Step Over (o pulsar F6): "paso sobre". Significa que se ejecutará instrucción por instrucción pero si el debugger encuentra una función (y/o subrutina-procedimiento-método), al pulsar Step Over se irá a la siguiente instrucción del código sin entrar en la subrutina.
- Step Return (o pulsar F7): "paso retorno". Imagina que nos encontramos dentro de una función y quieres salir de ella. Una forma sería encontrar la última instrucción, poner ahí un BP, pulsar Resume y finalmente Step Into, sin embargo, tenemos la opción de pulsar Step Return y el debugger automáticamente encontrará el final de la función y nos situará fuera de ella.
- Run to Line (o pulsar Ctrl+R). Ejecutar hasta la linea. Sencillo, se reanuda la ejecución del código hasta la linea que has seleccionado.
- Use Step Filters (o pulsar Shift+F5). "Use los filtros de paso". Estos filtros los tenemos para PHP en el menú Windows -> Preferences -> PHP -> Debug -> Step Filtering. Con estos filtros podemos evitar por ejemplo entrar en determinados procedimientos. Yo a fecha de este artículo no los he probado en php, pero haré algún ejemplo.
La verdad que son muy sencillos de entender. Si recuerdas estamos parados en la linea 8:
08> <?php
09 //Simple ejemplo php
10 $variable = 0;
11 ++$variable;
12 if ($variable == 1)
13 {
14 $nombre = 'karmany';
15 }
16 else
17 {
18 $nombre = 'la web de karmany';
19 }
20 ?>
Pon un BP en la linea 11. Pulsa F8, verás que se detiene en en la linea 11. Pulsa F5 y te encontrarás en la linea 12. En estos momentos sabes que la variable $variable vale 1 porque hemos hecho operaciones muy sencillas, veamos la subventana de variables a ver cuánto vale $variable y $nombre:
Si quieres ver los Breakpoints que tienes puestos, pulsa en la pestaña que ves en la imagen anterior, los podrás desactivar, activar, borrar, borrar todos, importar, exportar o incluso poner una condición. La pestaña Expressions es muy útil porque te permite conocer el valor de expresiones que tú necesites y no sólo de variables individuales, verás que lo utilizarás bastante sobre todo en códigos complejos. Veremos ejemplos más adelante.