debug
*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
Retorna uma string de formato não definido que descreve a pilha de chamadas de função atual.
Retorna uma string de formato não definido que descreve a pilha de chamadas de função atual.
Percorre toda a pilha de subprocesso atual e retorna uma string que contém a pilha de chamadas de detalhes de nível de alvo.
Percorre toda a pilha de thread atual e retorna uma string que contém a pilha de chamadas de detalhes da função alvo.
Percorre toda a pilha do subprocesso alvo e retorna uma string que contém o conjunto de chamadas de detalhes de nível de alvo.
Começa a perfilar para uma etiqueta / rótulo.
Para de perfilar para a etiqueta mais recente que debug.profilebegin() abriu.
Retorna o nome da categoria de memória ativa do Subprocessoatual.
Atribui uma tag personalizada à categoria de memória do Subprocessoatual.
Redefine a etiqueta atribuída por debug.setmemorycategory() ao valor atribuído automaticamente (normalmente, o nome do script).
Exibe uma tabela do tamanho do código nativo de funções e scripts individuais.
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
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
Um subprocesso retornado por coroutine.create().
A primeira linha da string / cadeia / textoretornada.
O número de chamadas "para cima" da pilha de chamadas para retornar.
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
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.
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:
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
A função da pilha de chamadas que a informação retornada deve descrever.
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:
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
Um subprocesso retornado por coroutine.create().
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.
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:
Devolução
profilebegin
Começa a perfilar para uma etiqueta / rótuloMicroProfiler.
Parâmetros
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
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
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.