Blog de Gonzalo

RASTREAR EL CÓDIGO

Una manera de trastrear el código en php es escirbiendo logs en todas las funciones de la aplicación para depurar el código y poder encontrar un error. Pero php tiene una función que si se le invoca en la última función a depurar nos dice el fichero y la línea en que se ha llamado la función y los parámetros pasados. Lo cual resulta muy útil. Dicha función es debug_backtrace. Se puede invocar aesta invocar sin argumentos y nos devolverá un array asociativo en la que cada posición de array nos dirá la función llamada, el número de línea en la que fue invocada, el fichero donde se encuentra dicha función y los argumentos pasados a dicha función.
Argumentos(opcionales):

  • OPTIONS: con dos posibles valores:DEBUG_BACKTRACE_IGNORE_ARGS que devuelve toda la información mencionada antes salvo los argumentos pasados a la función o DEBUG_BACKTRACE_PROVIDE_OBJECT (por defecto) y devuelve toda la información de todas las llamadas detallada anteriormente.
  • limit:Tamaño máximo del array resultante de la traza. Por defecto es 0 y creo que e smejor dejarlo así para hacer un mejor rastreo de todas las funciones invocadas.

Hay otra función similar llamada debug_print_backtrace que devuelve las funciones invocadas, el fichero y el número de línea de la llamada a dicha función.
Un ejemplo para rastrear las funciones invocadas sería que tenemos una tienda online y falla el proceso de compra y no se resta bien el stock de productos.

Compartir en twitter