English version of this post.
Éste fin de semana he estado trabajando en algunos scripts de lua en los cuales estaba teniendo algunos problemas para visualizar el flujo. Así que decidí escribir una pequeña función que imprime la función actual en la que el se encuentra el flujo de código así como los valores de los parámetros pasados a esta función.
A mí me ha sido de ayuda por lo que aquí la dejo por si le sirve a alguien más. La primer función recibe el nombre de la función que hizo la llamada y una lista de parámetros los cuales concatena en una cadena amigable. La segunda función es un ejemplo de como imprimir información de la función en la que estamos.
local function debug_print_trac(func, ...) local res = func .. "( "; for i,v in ipairs(arg) do res = res .. tostring(v) .. " "; end res = res .. " )"; debug_print(res); end local function set_monitor(monitor) debug_print_trac(debug.getinfo(1, "n").name, monitor); if (monitor == "principal") then set_window_position(0,0); else set_window_position(2561,0); end end
A continuación se muestran unos resultados del debugging donde se puede apreciar las funciones por las que ha pasado el flujo y los valores de los parámetros.
set_top( false ) Window Name: The Linux Programming Interface Application name: Document Viewer max_in( principal 4 false ) set_monitor( principal )
¡Saludos!
-Yohan