debug
*Este contenido se traduce usando la IA (Beta) y puede contener errores. Para ver esta página en inglés, haz clic en aquí.
Proporciona algunas funciones básicas para depurar código en Roblox.A diferencia de la biblioteca debug encontrada en Lua nativamente, esta versión se ha aislado fuertemente.
Resumen
Funciones
Devuelve una cadena de formato no definido que describe la pila de llamadas de función actual.
Devuelve una cadena de formato no definido que describe la pila de llamadas de función actual.
Recorre toda la pila de hilo actual y devuelve una cadena que contiene la pila de llamadas de los detalles del nivel objetivo.
Recorre toda la pila de hilo actual y devuelve una cadena que contiene la pila de llamadas de los detalles de la función objetivo.
Recorre toda la pila del hilo objetivo y devuelve una cadena que contiene la pila de llamadas de los detalles del nivel objetivo.
Empieza a perfilar para una etiqueta.
Detiene el perfilado para la etiqueta más reciente que debug.profilebegin() abrió.
Devuelve el nombre de la categoría de memoria activa del hilo actual.
Asigna una etiqueta personalizada a la categoría de memoria del hilo actual.
Restablece la etiqueta asignada por debug.setmemorycategory() al valor asignado automáticamente (normalmente, el nombre del script).
Muestra una tabla del tamaño del código nativo de funciones e scripts individuales.
Funciones
traceback
Devuelve un rastro de la pila de llamadas de función actual como una cadena; en otras palabras, una descripción de las funciones que se han llamado hasta este punto.Durante la depuración, esto se comporta como un rastro de pila de errores, pero no detiene la ejecución del script.
El parámetro level especifica qué nivel de la pila de llamadas considerar, con 1 siendo la llamada de debug.traceback() de sí mismo, 2 siendo la llamada de la función que llama debug.traceback() , y así sucesivamente.Vea el ejemplo de código a continuación para un ejemplo de llamadas secuenciales de función.
Tenga en cuenta que esta función a menudo devolverá resultados inexactos (en comparación con el código original) y que el formato del rastro devuelto puede cambiar en cualquier momento.No deberías no procesar el valor de devolución para información específica como nombres de scripts o números de líneas.
El siguiente ejemplo incluye llamadas secuenciales de funciones; fnB() se llama, y luego llama fnA() que luego llama debug.traceback() .
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Llamar la función fnB() para comenzar el seguimiento
fnB()
Parámetros
Devuelve
Rastreo de la pila de llamadas de función actual.
traceback
Devuelve un rastro de la pila de llamadas de función actual como una cadena; en otras palabras, una descripción de las funciones que se han llamado hasta este punto.Durante la depuración, esto se comporta como un rastro de pila de errores, pero no detiene la ejecución del script.
El parámetro level especifica qué nivel de la pila de llamadas considerar, con 1 siendo la llamada de debug.traceback() de sí mismo, 2 siendo la llamada de la función que llama debug.traceback() , y así sucesivamente.Vea el ejemplo de código a continuación para un ejemplo de llamadas secuenciales de función.
Tenga en cuenta que esta función a menudo devolverá resultados inexactos (en comparación con el código original) y que el formato del rastro devuelto puede cambiar en cualquier momento.No deberías no procesar el valor de devolución para información específica como nombres de scripts o números de líneas.
El siguiente ejemplo incluye llamadas secuenciales de funciones; fnB() se llama, y luego llama fnA() que luego llama debug.traceback() .
local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Llamar la función fnB() para comenzar el seguimiento
fnB()
Parámetros
Un hilo como devuelto por coroutine.create().
La primera línea de la cadena devuelta.
El número de llamadas "arriba" de la pila de llamadas para devolver.
Devuelve
Rastreo de la pila de llamadas de función actual.
info
Permite la inspección programática de la pila de llamadas.Esta función se diferencia de debug.traceback() en que garantiza el formato de los datos que devuelve.Esto es útil para propósitos generales de seguimiento y filtrado, así como para enviar los datos a sistemas que esperan una entrada estructurada, como la agregación de accidentes.
local function fnA()
-- Identificador de fuente de salida ("s") y línea ("l") en los niveles 1 y 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()
Tenga en cuenta que esta función es similar a debug.getinfo, una parte no disponible de la biblioteca estándar de Lua que sirve para un propósito similar.
Parámetros
Determina en qué nivel de la pila de llamadas la información devuelta debe describirse.Un valor de 1 representa la función que está llamando debug.info() , un valor de 2 representa la función que llamó esa función, y así sucesivamente.
Una cadena que describe lo que la información devuelta debe representar.Solo debe contener 0 o 1 instancias de los personajes slnaf, cada una representando una pieza de información:
Devuelve
info
Permite la inspección programática de la pila de llamadas.Esta función se diferencia de debug.traceback() en que garantiza el formato de los datos que devuelve.Esto es útil para propósitos generales de seguimiento y filtrado, así como para enviar los datos a sistemas que esperan una entrada estructurada, como la agregación de accidentes.
local function fnA()
end
local function fnB()
end
-- Línea de salida ("l"), nombre ("n") y identificador ("f") para ambas fnA() y fnB()
print(debug.info(fnA, "lnf")) --> 1 función fnA: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2
Tenga en cuenta que esta función es similar a debug.getinfo, una parte no disponible de la biblioteca estándar de Lua que sirve para un propósito similar.
Parámetros
La función de la pila de llamadas que la información devuelta debe describir.
Una cadena que describe lo que la información devuelta debe representar.Solo debe contener 0 o 1 instancias de los personajes slnaf, cada una representando una pieza de información:
Devuelve
info
Permite la inspección programática de la pila de llamadas.Esta función se diferencia de debug.traceback() en que garantiza el formato de los datos que devuelve.Esto es útil para propósitos generales de seguimiento y filtrado, así como para enviar los datos a sistemas que esperan una entrada estructurada, como la agregación de accidentes.
local function fnA()
-- Identificador de fuente de salida ("s") y línea ("l") en los niveles 1 y 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()
Tenga en cuenta que esta función es similar a debug.getinfo, una parte no disponible de la biblioteca estándar de Lua que sirve para un propósito similar.
Parámetros
Un hilo como devuelto por coroutine.create().
Determina en qué nivel de la pila de llamadas la información devuelta debe describirse.Un valor de 1 representa la función que está llamando debug.info() , un valor de 2 representa la función que llamó esa función, y así sucesivamente.
Una cadena que describe lo que la información devuelta debe representar.Solo debe contener 0 o 1 instancias de los personajes slnaf, cada una representando una pieza de información:
Devuelve
profilebegin
Empieza a perfilar para una etiqueta MicroProfiler.
Parámetros
El texto que muestra esta etiqueta MicroProfiler.
Devuelve
profileend
Detiene el perfilado para la etiqueta MicroProfiler más reciente que debug.profilebegin() se abrió.
Devuelve
setmemorycategory
Asigna un nombre de etiqueta personalizado a la categoría de memoria del hilo actual en la Consola del desarrollador.Útil para analizar el uso de memoria de múltiples subprocesos en el mismo script que de otra forma se agruparían bajo la misma etiqueta/nombre.Devuelve el nombre de la categoría de memoria anterior del hilo actual.
Parámetros
Devuelve
La categoría de memoria anterior del hilo actual.
resetmemorycategory
Restablece la etiqueta asignada por debug.setmemorycategory() al valor asignado automáticamente (normalmente, el nombre del script).
Devuelve
dumpcodesize
Muestra una tabla del tamaño del código nativo de funciones e scripts individuales.Esta función solo está disponible en la barra de comandos en Studio.Más detalles se pueden encontrar en la página Generación de código nativo.