debug

Mostrar obsoleto

*Este conteúdo é traduzido por IA (Beta) e pode conter erros. Para ver a página em inglês, clique aqui.

Fornece algumas funções básicas para debugar código no Roblox.Ao contrário da biblioteca debug encontrada em Lua nativamente, esta versão foi fortemente sandboxada.

Resumo

Funções

Funções

traceback

Retorna um rastro da pilha de chamadas de função atual como uma string / cadeia / texto; em outras palavras, uma descrição das funções que foram chamadas até este ponto.Durante a depuração, isso se comporta como um rastro de pilha de erros, mas não interrompe a execução do script.

O parâmetro level especifica qual nível da pilha de chamadas deve ser considerado, com 1 sendo a chamada do próprio debug.traceback() , 2 sendo a chamada da função que está chamando debug.traceback() e assim por diante.Veja o exemplo de chamadas sequenciais de função abaixo para um exemplo de chamadas sequenciais de função.

Observe que essa função muitas vezes retornará resultados imprecisos (em comparação com o código original) e que o formato do rastro retornado pode mudar a qualquer momento.Você não deve não analisar o valor de retorno para informações específicas, como nomes de scripts ou números de linhas.

O seguinte exemplo inclui chamadas de função sequenciais; fnB() é chamado e chama fnA() que, em seguida, chama debug.traceback() .


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Chame a função fnB() para começar o rastreamento
fnB()

Parâmetros

message: string

A primeira linha da string / cadeia / textoretornada.

level: number

O número de chamadas "para cima" da pilha de chamadas para retornar.

Valor Padrão: 1

Devolução

Rastreamento da pilha de chamadas de função atual.

traceback

Retorna um rastro da pilha de chamadas de função atual como uma string / cadeia / texto; em outras palavras, uma descrição das funções que foram chamadas até este ponto.Durante a depuração, isso se comporta como um rastro de pilha de erros, mas não interrompe a execução do script.

O parâmetro level especifica qual nível da pilha de chamadas deve ser considerado, com 1 sendo a chamada do próprio debug.traceback() , 2 sendo a chamada da função que está chamando debug.traceback() e assim por diante.Veja o exemplo de chamadas sequenciais de função abaixo para um exemplo de chamadas sequenciais de função.

Observe que essa função muitas vezes retornará resultados imprecisos (em comparação com o código original) e que o formato do rastro retornado pode mudar a qualquer momento.Você não deve não analisar o valor de retorno para informações específicas, como nomes de scripts ou números de linhas.

O seguinte exemplo inclui chamadas de função sequenciais; fnB() é chamado e chama fnA() que, em seguida, chama debug.traceback() .


local function fnA()
print(debug.traceback("Specific moment during fnA()"))
end
local function fnB()
fnA()
end
-- Chame a função fnB() para começar o rastreamento
fnB()

Parâmetros

thread: coroutine

Um subprocesso retornado por coroutine.create().

message: string

A primeira linha da string / cadeia / textoretornada.

level: number

O número de chamadas "para cima" da pilha de chamadas para retornar.

Valor Padrão: 1

Devolução

Rastreamento da pilha de chamadas de função atual.

info

Permite inspeção programática da pilha de chamadas.Essa função difere de debug.traceback() na medida em que garante o formato dos dados que retorna.Isso é útil para fins gerais de registro e filtragem, bem como para enviar os dados a sistemas que esperam entrada estruturada, como agregação de colisão.


local function fnA()
-- Identificador de origem de saída ("s") e linha ("l") nos níveis 1 e 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Observe que essa função é semelhante a Debug.getinfo, uma parte não disponível da biblioteca Lua padrão que serve a um propósito semelhante.

Parâmetros

level: number

Determina em que nível da pilha de chamadas a informação retornada deve descrever.Um valor de 1 representa a função que está chamando debug.info() , um valor de 2 representa a função que chamou essa função e assim por diante.

options: string

Uma string que descreve o que a informação retornada deve representar.Deve conter apenas 0 ou 1 instâncias dos personagens slnaf, cada uma representando uma peça de informação:

  • s ( string ) — O identificador de origem da função, igual ao nome completo do script em que a função é definida.
  • l ( número ) — O número da linha da chamada de função representada por level .
  • n ( string ) — O nome da função; pode ser nil para funções anônimas e funções C sem um nome de depuração atribuído.
  • a ( número , booleano ) — Aridade da função, que se refere ao número de parâmetros e se a função é variável.
  • f ( função ) — A função que foi inspecionada.

Devolução

info

Permite inspeção programática da pilha de chamadas.Essa função difere de debug.traceback() na medida em que garante o formato dos dados que retorna.Isso é útil para fins gerais de registro e filtragem, bem como para enviar os dados a sistemas que esperam entrada estruturada, como agregação de colisão.


local function fnA()
end
local function fnB()
end
-- Linha de saída ("l"), nome ("n") e identificador ("f") para tanto fnA() e fnB()
print(debug.info(fnA, "lnf")) --> 1 função fnA: 0x75e3d3c398a81252
print(debug.info(fnB, "lnf")) --> 5 fnB function: 0x6022a6dc5ccf4ab2

Observe que essa função é semelhante a Debug.getinfo, uma parte não disponível da biblioteca Lua padrão que serve a um propósito semelhante.

Parâmetros

function: function

A função da pilha de chamadas que a informação retornada deve descrever.

options: string

Uma string que descreve o que a informação retornada deve representar.Deve conter apenas 0 ou 1 instâncias dos personagens slnaf, cada uma representando uma peça de informação:

  • s ( string ) — O identificador de origem da função, igual ao nome completo do script em que a função é definida.
  • l ( número ) — A linha que function é definida sobre.
  • n ( string ) — O nome da função; pode ser nil para funções anônimas e funções C sem um nome de depuração atribuído.
  • a ( número , booleano ) — Aridade da função, que se refere ao número de parâmetros e se a função é variável.
  • f ( função ) — A função que foi inspecionada.

Devolução

info

Permite inspeção programática da pilha de chamadas.Essa função difere de debug.traceback() na medida em que garante o formato dos dados que retorna.Isso é útil para fins gerais de registro e filtragem, bem como para enviar os dados a sistemas que esperam entrada estruturada, como agregação de colisão.


local function fnA()
-- Identificador de origem de saída ("s") e linha ("l") nos níveis 1 e 2
print(debug.info(1, "sl")) --> fnA() 3
print(debug.info(2, "sl")) --> fnA() 7
end
fnA()

Observe que essa função é semelhante a Debug.getinfo, uma parte não disponível da biblioteca Lua padrão que serve a um propósito semelhante.

Parâmetros

thread: coroutine

Um subprocesso retornado por coroutine.create().

level: number

Determina em que nível da pilha de chamadas a informação retornada deve descrever.Um valor de 1 representa a função que está chamando debug.info() , um valor de 2 representa a função que chamou essa função e assim por diante.

options: string

Uma string que descreve o que a informação retornada deve representar.Deve conter apenas 0 ou 1 instâncias dos personagens slnaf, cada uma representando uma peça de informação:

  • s ( string ) — O identificador de origem da função, igual ao nome completo do script em que a função é definida.
  • l ( número ) — O número da linha da chamada de função representada por level .
  • n ( string ) — O nome da função; pode ser nil para funções anônimas e funções C sem um nome de depuração atribuído.
  • a ( número , booleano ) — Aridade da função, que se refere ao número de parâmetros e se a função é variável.
  • f ( função ) — A função que foi inspecionada.

Devolução

profilebegin

()

Começa a perfilar para uma etiqueta / rótuloMicroProfiler.

Parâmetros

label: string

O texto que este rótulo MicroProfiler exibe.

Devolução

()

profileend

()

Para de perfilar para a etiqueta mais recente MicroProfiler que debug.profilebegin() abriu.

Devolução

()

getmemorycategory

Retorna o nome da categoria de memória ativa do Subprocessoatual.

Devolução

A categoria de memória ativa do Subprocessoatual.

setmemorycategory

Atribui um nome de tag personalizado à categoria de memória do Subprocessoatual no Console do Desenvolvedor.Útil para analisar o uso de memória de vários subprocessos no mesmo script que, caso contrário, seriam agrupados sob a mesma tag/nome.Retorna o nome da categoria de memória anterior do Subprocessoatual.

Parâmetros

tag: string

Devolução

A categoria de memória anterior do Subprocessoatual.

resetmemorycategory

()

Redefine a etiqueta atribuída por debug.setmemorycategory() ao valor atribuído automaticamente (normalmente, o nome do script).

Devolução

()

dumpcodesize

()

Exibe uma tabela do tamanho do código nativo de funções e scripts individuais.Essa função está disponível apenas na Barra de Comando no Studio.Mais detalhes podem ser encontrados na página Geração de Código Nativo.

Devolução

()