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 el código en Roblox. A diferencia de la biblioteca debug que se encuentra en Lua por defecto, esta versión ha sido altamente sandboxeada.

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

    Cruza todo el stack de hilos actual y devuelve una cadena que contiene la lista de niveles de llamada de los detalles del nivel de objetivo.

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

    Cruza todo el stack de hilos actual y devuelve una cadena que contiene la lista de detalles de función de destino.

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

    Cruza todo el subproceso de hilo objetivo y devuelve una cadena que contiene la lista de niveles de llamada de los detalles del nivel objetivo.

  • profilebegin(label : string):()

    Comienza a perfilar para una etiqueta.

  • Detiene el perfilado para la depurarmás reciente que se ha abierto.

  • Devuelve el nombre de la categoría de memoria activa del subprocesoactual.

  • Asigna una etiqueta personalizada a la categoría de memoria del subprocesoactual.

  • Restablece la etiqueta asignada por debug.setmemorycategory() a la valor asignado automáticamente (por lo general, el nombre del script).

  • Muestra una tabla de tamaño de código nativo de individuales funciones y scripts.

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 el diagnóstico, esto se comporta como un rastro de error 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() a sí misma, 1>21> la llamada de la función que llama a 4>Library. depurar. traceback()4> y así sucesivamente. Vea el ejemplo de código a continuación para un ejemplo de

Tenga en cuenta que esta función a menudo devolverá resultados inexactos (código) y que el formato de la devolución de rastro puede cambiar en cualquier momento. Debe no procesar el valor de devolución para obtener información específica, como nombres de scripts o números de línea.

El siguiente ejemplo incluye llamadas de función secuenciales; fnB() es llamado, y luego llama a fnA() que luego llama a debug.traceback() .


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Llamar función fnB() para comenzar el rastro
fnB()

Parámetros

message: string

La primera línea de la cadena de caracteres devuelta.

level: number

El número de llamadas "up" que la pila de llamadas devolver.

Valor predeterminado: 1

Devuelve

Rastro de la 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 el diagnóstico, esto se comporta como un rastro de error 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() a sí misma, 1>21> la llamada de la función que llama a 4>Library. depurar. traceback()4> y así sucesivamente. Vea el ejemplo de código a continuación para un ejemplo de

Tenga en cuenta que esta función a menudo devolverá resultados inexactos (código) y que el formato de la devolución de rastro puede cambiar en cualquier momento. Debe no procesar el valor de devolución para obtener información específica, como nombres de scripts o números de línea.

El siguiente ejemplo incluye llamadas de función secuenciales; fnB() es llamado, y luego llama a fnA() que luego llama a debug.traceback() .


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Llamar función fnB() para comenzar el rastro
fnB()

Parámetros

thread: coroutine

Un hilo como se muestra por coroutine.create() .

message: string

La primera línea de la cadena de caracteres devuelta.

level: number

El número de llamadas "up" que la pila de llamadas devolver.

Valor predeterminado: 1

Devuelve

Rastro de la función actual.

info

Permite inspeccionar programáticamente la pila de llamadas. Esta función difiere de debug.traceback() en que garantiza el formato de los datos que devuelve. Esto es útil para propósitos de general de diagnóstico y filtrado, así como para enviar los datos a sistemas que esperan entrada estructurada, como la agregación de crashes.


local function fnA()
-- Identificador de fuente de salida ("s") y línea ("l") en niveles 1 y 2
print(debug.info(1, "sl")) --> funcionamiento de la función de
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Nota que esta función es similar a depurar.getinfo , una parte no disponible de la biblioteca Lua estándar que sirve un propósito similar.

Parámetros

level: number

Determina a qué nivel de la pila de llamadas se debe incluir la información que se devuelve. 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 debe representar la información devuelta. Sólo debe contener 0 o 1 instancias de los personajes slnaf , cada uno de los cuales representa una pieza de información:

  • s ( string ) — El identificador de la fuente de la función, que es 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 función representada por level .
  • n ( string ) — El nombre de la función; puede ser nil para las funciones anónimas y C funciones sin un nombre de diagnóstico asignado.
  • a ( número , Booleano ) — Aridad de la función, que se refiere a la cantidad de parámetros y si la función es variable.
  • f ( función ) — La función que se inspeccionó.

Devuelve

info

Permite inspeccionar programáticamente la pila de llamadas. Esta función difiere de debug.traceback() en que garantiza el formato de los datos que devuelve. Esto es útil para propósitos de general de diagnóstico y filtrado, así como para enviar los datos a sistemas que esperan entrada estructurada, como la agregación de crashes.


local function fnA()
end
local function fnB()
end
-- Línea de salida ("l"), nombre ("n") y identificador ("f") para ambas funciones ftA() y ftB()
print(debug.info(fnA, "lnf")) --> 1 función fernA: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2

Nota que esta función es similar a depurar.getinfo , una parte no disponible de la biblioteca Lua estándar que sirve un propósito similar.

Parámetros

function: function

La función de la pila de llamadas que debe describir la información que se ha devuelto.

options: string

Una cadena que describe lo que debe representar la información devuelta. Sólo debe contener 0 o 1 instancias de los personajes slnaf , cada uno de los cuales representa una pieza de información:

  • s ( string ) — El identificador de la fuente de la función, que es igual al nombre completo del script en el que se define la función.
  • l ( número ) — La línea en la que se define function .
  • n ( string ) — El nombre de la función; puede ser nil para las funciones anónimas y C funciones sin un nombre de diagnóstico asignado.
  • a ( número , Booleano ) — Aridad de la función, que se refiere a la cantidad de parámetros y si la función es variable.
  • f ( función ) — La función que se inspeccionó.

Devuelve

info

Permite inspeccionar programáticamente la pila de llamadas. Esta función difiere de debug.traceback() en que garantiza el formato de los datos que devuelve. Esto es útil para propósitos de general de diagnóstico y filtrado, así como para enviar los datos a sistemas que esperan entrada estructurada, como la agregación de crashes.


local function fnA()
-- Identificador de fuente de salida ("s") y línea ("l") en niveles 1 y 2
print(debug.info(1, "sl")) --> funcionamiento de la función de
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Nota que esta función es similar a depurar.getinfo , una parte no disponible de la biblioteca Lua estándar que sirve un propósito similar.

Parámetros

thread: coroutine

Un hilo como se muestra por coroutine.create() .

level: number

Determina a qué nivel de la pila de llamadas se debe incluir la información que se devuelve. 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 debe representar la información devuelta. Sólo debe contener 0 o 1 instancias de los personajes slnaf , cada uno de los cuales representa una pieza de información:

  • s ( string ) — El identificador de la fuente de la función, que es 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 función representada por level .
  • n ( string ) — El nombre de la función; puede ser nil para las funciones anónimas y C funciones sin un nombre de diagnóstico asignado.
  • a ( número , Booleano ) — Aridad de la función, que se refiere a la cantidad de parámetros y si la función es variable.
  • f ( función ) — La función que se inspeccionó.

Devuelve

profilebegin

()

Comienza a perfilar para una etiqueta MicroProfiler .

Parámetros

label: string

El texto que esta etiqueta MicroProfiler muestra.

Devuelve

()

profileend

()

Detiene el perfilado para la depurarmás reciente MicroProfiler que se ha abierto.

Devuelve

()

getmemorycategory

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

Devuelve

La categoría de memoria activa del subproceso actual.

setmemorycategory

Asigna un nombre de etiqueta personalizado a la categoría de memoria actual en la consola de desarrollador. Útil para analizar el uso de memoria de múltiples subprocesos en el mismo script que de otra manera se agruparía bajo la misma etiqueta/nombre. Restablece el nombre de la categoría de memoria actual.

Parámetros

tag: string

Devuelve

La categoría de memoria actual del subproceso.

resetmemorycategory

()

Restablece la etiqueta asignada por debug.setmemorycategory() a la valor asignado automáticamente (por lo general, el nombre del script).

Devuelve

()

dumpcodesize

()

Muestra una tabla de tamaño de código nativo de funciones y scripts individuales. Esta función solo está disponible en la Barra de Comandos en Studio. Para obtener más información, consulte la página Generación de código nativo.

Devuelve

()