debug

Mostrar obsoleto

*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

  • traceback(message : string,level : number):string

    Devuelve una cadena de formato no definido que describe la pila de llamadas de función actual.

  • traceback(thread : coroutine,message : string,level : number):string

    Devuelve una cadena de formato no definido que describe la pila de llamadas de función actual.

  • info(level : number,options : string):Tuple

    Recorre toda la pila de hilo actual y devuelve una cadena que contiene la pila de llamadas de los detalles del nivel objetivo.

  • info(function : function,options : string):Tuple

    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.

  • info(thread : coroutine,level : number,options : string):Tuple

    Recorre toda la pila del hilo objetivo y devuelve una cadena que contiene la pila de llamadas de los detalles del nivel objetivo.

  • profilebegin(label : string):()

    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

message: string

La primera línea de la cadena devuelta.

level: number

El número de llamadas "arriba" de la pila de llamadas para devolver.

Valor predeterminado: 1

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

thread: coroutine

Un hilo como devuelto por coroutine.create().

message: string

La primera línea de la cadena devuelta.

level: number

El número de llamadas "arriba" de la pila de llamadas para devolver.

Valor predeterminado: 1

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

level: number

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.

options: string

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:

  • s ( cadena ) — El identificador de fuente de función, igual al nombre completo del script en el que se define la función.
  • l ( número ) — El número de línea de la llamada de función representada por level .
  • n ( cadena ) — El nombre de la función; puede ser nil para funciones anónimas y funciones C sin un nombre de depuración asignado.
  • a ( número , booleano ) — Aritmética de la función, que se refiere al número de parámetros y si la función es variada.
  • f ( función ) — La función que se inspeccionó.

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

function: function

La función de la pila de llamadas que la información devuelta debe describir.

options: string

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:

  • s ( cadena ) — El identificador de fuente de función, igual al nombre completo del script en el que se define la función.
  • l ( número ) — La línea que function se define en.
  • n ( cadena ) — El nombre de la función; puede ser nil para funciones anónimas y funciones C sin un nombre de depuración asignado.
  • a ( número , booleano ) — Aritmética de la función, que se refiere al número de parámetros y si la función es variada.
  • f ( función ) — La función que se inspeccionó.

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

thread: coroutine

Un hilo como devuelto por coroutine.create().

level: number

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.

options: string

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:

  • s ( cadena ) — El identificador de fuente de función, igual al nombre completo del script en el que se define la función.
  • l ( número ) — El número de línea de la llamada de función representada por level .
  • n ( cadena ) — El nombre de la función; puede ser nil para funciones anónimas y funciones C sin un nombre de depuración asignado.
  • a ( número , booleano ) — Aritmética de la función, que se refiere al número de parámetros y si la función es variada.
  • f ( función ) — La función que se inspeccionó.

Devuelve

profilebegin

()

Empieza a perfilar para una etiqueta MicroProfiler.

Parámetros

label: string

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

()

getmemorycategory

Devuelve el nombre de la categoría de memoria activa del hilo actual.

Devuelve

La categoría de memoria activa del hilo actual.

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

tag: string

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.

Devuelve

()