Tag Archives: debugger

Como debugar un shellscript

Cuando desarrollamos un script shell generalmente necesitamos debugar para ver como se está ejecutando. Una de las formas de hacerlo es trazando la ejecución del script. Esto lo podemos hacer llamando al script con la siguiente línea:

Del mismo modo, si queremos trazar en la terminal podemos hacerlo con:

Podemos deshabilitarlo con:

Adicionalmente tenemos los parámetros:

Que también se pueden ejecutar como:

También podemos cambiar el PS4 para que devuelva info útil:

Otro comando útil es:

Que permite trazar la ejecución de cualquier ejecutable. Algunos parámetros útiles son:

Trazar llamadas del sistema:

Ejemplo:

Salida a archivo:

Ejemplo:

Trazar proceso en ejecución:

Ejemplo:

(Para averiguar pid: ps -C firefox-bin)

Añadir timestamp a la traza:

Ejemplo:

Imprimir timestamp relativo a la ejecución de la llamada del sistema:

Ejemplo:

Generar informe con estadisticas sobre las llamadas del sistema:

Ejemplo:

Finalmente podemos usar un debugger de terceros, como alguno de los siguientes:
https://sourceforge.net/projects/bashdebugingbash
https://github.com/koalaman/shellcheck
http://bashdb.sourceforge.net/

Referencias:
http://www.gnu.org/software/bash/manual/bashref.html
http://stackoverflow.com/questions/951336/how-to-debug-a-bash-script
http://www.thegeekstuff.com/2011/11/strace-examples/