O Studio oferece muitas ferramentas de depuração comumente encontradas em Ambientes de Desenvolvimento Integrados (IDEs).Essas ferramentas ajudam você a resolver erros e inspecionar scripts linha por linha à medida que são executar.As informações de depuração são exibidas na janela Assistir, Pilha de Chamadas, Pontos de Interrupção e Saída para você inspecionar.
Fluxo de trabalho geral
Se você notar um problema em sua experiência ou quiser verificar se ela funciona como pretendido, você pode depurar o código relacionado a ele da seguinte forma:
Insira pontos de interrupção nas linhas de código que você deseja examinar.
Na aba Script, clique em Jogar ou Executar na aba de teste para iniciar uma sessão de teste de jogo, também conhecida como sessão de depuração.
Quando um script atinge um ponto de interrupção, a sessão de teste de jogo é suspensa.Inspecione o Relógio, Pilha de Chamadas e Saída janelas para ajudá-lo a diagnosticar e entender o problema.
Insira pontos de interrupção adicionais em linhas de código que ainda não foram executadas para inspecionar dados adicionais.Desabilite ou exclua pontos de interrupção que você não precisa mais.
Na aba Script , clique em Parar para encerrar a sessão de depuração.
Repita os passos anteriores até resolver o problema ou encontrar a causa raiz.À medida que você aprende o fluxo de trabalho geral, você pode configurar os pontos de interrupção para quebrar somente se certas condições forem atendidas, para imprimir uma mensagem na janela Saída, e para executar apenas no cliente ou no servidor.Para mais informações, veja Configurações de Ponto de Interrupção.
Inserir pontos de interrupção
Os pontos de interrupção são pontos de verificação que pausam ou "quebram" a execução de seus scripts em linhas específicas.Você pode usar as pausas para inspecionar e depurar sua experiência, assistir variáveis, e inspecionar o stack de chamadas.Os pontos de interrupção são uma das maneiras mais eficazes de depurar funções, então são uma das ferramentas de depuração mais importantes.Você pode inserir um ponto de interrupção em qualquer linha de código executável.
Para inserir um ponto de interrupção padrão em uma linha de código, clique com o botão esquerdo na margem à direita do número da linha.Você também pode clicar com o botão direito na margem e clicar em Inserir Ponto de Interrupção.O ponto de interrupção aparece como ponto vermelho.Para desativá-lo, clique no ponto.

Passar por código
Se você inserir um ponto de interrupção em uma linha em um script, o script pausa antes de executar essa linha.Uma seta amarela chamada "debugger" indica qual linha de código será executada a seguir.

Quando o script pausa, execute o seguinte código uma linha de cada vez passando por ele com os botões na aba Script.Os botões também aparecem no canto superior esquerdo da janela Pilha de Chamadas.À medida que você passa pelo código, monitore como sua experiência muda à medida que a linha atual é executada.

A tabela a seguir resume as três maneiras de percorrer o código.Para continuar executando seu código depois de atingir um ponto de interrupção, clique em Resumir na aba Script .
Botão | Ação | Atalho | Descrição |
---|---|---|---|
![]() | |||
![]() | Passo Sobre | F10 | O botão Passo Sobre move o depurador para a próxima linha de código, não se movendo para funções. |
![]() | Passo Fora | ShiftF11 | O botão Passo Fora move o depurador para fora da função atual e para a próxima linha de código após a chamada da função.Se a linha atual não estiver dentro de uma função, o depurador se move para a próxima linha. |
Inspecionar código
Quando um ponto de interrupção pára a experiência durante um teste de jogo, você pode inspecionar a janela Assistir janela, Call Stack janela, Saída janela e Editor de Scripts para encontrar informações sobre valores de variáveis e execuções de funções.Com essas informações, você pode encontrar a causa raiz do problema em sua experiência.
Assistir
A janela Assistir tem duas abas: Variáveis e Meus Relógios .A aba Variáveis mostra informações sobre as variáveis atuais em escopo e a aba Meus Relógios mostra o valor de variáveis ou expressões que você define.Ambas as abas mostram informações antes da linha ser executada.
A aba Variáveis tem as seguintes colunas:
- Nome - O nome declarado da variável.
- Alcance - O alcance da variável: onde ela pode ser "vista" e acessada, como Local, Global ou Upvalue.
- Valor - O valor atual da variável.
- Tipo de dados - O tipo de dados da variável.
A aba Meus Relógios tem as seguintes colunas:
- Expressão – A expressão que você deseja Observar.
- Valor – O valor atual da expressão.
- Tipo de dados - O tipo de dados da expressão.
Na aba Variáveis , você pode filtrar o escopo de variáveis clicando no ícone de filtro.Você também pode classificar as linhas clicando no nome da coluna para classificar.A janela de relógio fornece vistas expandidas e colapsadas de tabelas.

Para inspecionar código na janela de Assistir:
Se a janela Assistir não estiver aberta, clique em Assistir na aba Ver.
Quando a sessão de teste de jogo pausa em um ponto de interrupção, pense sobre como você espera que a linha atual mude os valores das variáveis nesse script.
À medida que você passa pelo código, observe como o valor das variáveis muda na aba Variáveis .Se você quiser assistir a uma expressão não na aba Variáveis, abra a aba Meus Relógios .Clique em uma linha vazia na coluna Expressão, então digite a expressão nela.Se você quiser assistir uma variável no Editor de Script, clique duas vezes no nome da variável, clique com o botão direito, então clique em Adicionar Assistência .
Compare os valores de variáveis e expressões do que você espera e do que você vê na janela de Assistir.Se houver uma diferença entre como você espera que as variáveis mudem e como elas realmente mudam, então as variáveis ou as funções que interagem com elas podem estar causando problemas ou bugs.
Pilha de Chamadas
A janela Pilha de Chamadas mostra qual linha de código será executada em seguida quando o depurador chegar a um ponto de interrupção.O Stack de Chamadas indica de qual linha você chama uma função e, se você chamar a função em outras funções, a ordem das chamadas de função e quais linhas você chama as outras funções.A função superior do Call Stack é a última chamada e a primeira a ser executada.Você pode usar o Call Stack para verificar se a ordem das chamadas de função em seus scripts corresponde ao seu modelo mental das chamadas de função.

Se você tiver vários pontos de interrupção em diferentes scripts, eles podem pausar a sessão de teste de jogo ao mesmo tempo.Você pode pular para os pontos de interrupção clicando na seta ao lado do nome do script na janela do Call Stack.Se você clicar em Resumir , então você passa por todos os pontos de interrupção que pausaram ao mesmo tempo.

Para inspecionar código na janela do Call Stack durante uma sessão de depuração:
Se a janela Pilha de Chamadas não estiver aberta, então clique em Pilha de Chamadas na aba Ver.
Quando a sua experiência pausa em um ponto de interrupção, pense sobre como você espera que a ordem de chamadas de função esteja nesse script.
O Stack de Chamadas mostra a ordem das chamadas de função.Se o ponto de interrupção estiver dentro de uma função, o Call Stack mostra quais funções chamam essa função, se alguma.O Stack de Chamadas também mostra o nome e o número de linha de cada função.Clique na linha para uma função saltar para ela.
Compare a ordem das chamadas de função que você pensou no passo 2 e a ordem real do passo 3.Se houver diferenças, então há uma diferença entre como você espera que o código se comporte e como ele realmente se comporta, causando, assim, potenciais problemas e bugs.
Produção
A janela Saída, acessível a partir da aba Ver, exibe erros capturados ao executar scripts, mensagens do Roblox Engine, mensagens de chamadas para print() e erros de chamadas para warn().
Editor de Scripts
O Depurador é integrado com o Editor de Scripts.Quando sua experiência pausa em um ponto de interrupção em um script, você pode passar o mouse sobre o nome de uma variável para ver seu valor.Por exemplo, você pode ver o valor de uma tabela que você passa como argumento em uma chamada de função.

Configurações de ponto de interrupção
Você pode configurar pontos de interrupção para quebrar apenas se certas condições forem atendidas, para imprimir uma mensagem na janela Saída, e para executar apenas no cliente ou no servidor.Você também pode misturar essas configurações juntas para atender melhor às suas necessidades de depuração.
Editar pontos de interrupção
Você pode editar a configuração de um ponto de interrupção a qualquer momento, incluindo durante sessões de teste de jogo.Se você editar pontos de interrupção durante uma sessão de teste de jogo, as edições persistem mesmo depois de você terminá-la.Você também pode editar um ponto de interrupção que está pausando ativamente sua sessão de teste de jogo, mas as alterações não se aplicam até a próxima sessão de teste de jogo.
Para editar a configuração de um ponto de interrupção:
Clique com o botão direito no ponto de interrupção, então clique em Editar Ponto de Interrupção .
Na janela Editar Ponto de Interrupção , configure o ponto de interrupção como quiser.
Condição, mensagem de log e opções
Para cada ponto de interrupção, você pode definir sua condição , mensagem de log , continuar a execução e contexto .
A condição é a expressão que determina se o ponto de interrupção ativa ou não. A condição é opcional.Se a condição estiver vazia, o ponto de interrupção sempre ativa.Se a condição existir, então o ponto de interrupção ativa apenas se a condição for verdadeira.Por exemplo, se você quiser que o ponto de interrupção seja ativado somente se a variável n for igual a 42, então defina a condição como n == 42 .As condições são úteis para depurar como as funções executam quando certas variáveis têm determinados valores ou se você quiser quebrar apenas em algumas execuções em um loop.
A mensagem Registro é a expressão que imprime para a janela Saída quando a condição for verdadeira.O formato da Mensagem de Log é o mesmo que o argumento para uma declaração print() .Por exemplo, defina a Mensagem de Log como "The value of n:", n para imprimir a mesma mensagem que print("The value of n:", n) .Você pode adicionar e remover mensagens de log sem ter que interromper a execução, ao contrário de declarações de impressão.
A opção Continuar a execução determina se o ponto de interrupção pausa o script se for ativado.É útil se você quiser registrar valores de variáveis ou expressões sem interromper a execução.Essa opção está desativada por padrão.
O Contexto de um ponto de interrupção determina se o ponto de interrupção deve ativar no Cliente, Servidor ou Editar.Se o contexto for Cliente, então o ponto de interrupção é acionado em scripts do lado do cliente.Se o contexto for Servidor, então o ponto de interrupção é acionado em scripts do lado do servidor.Se o contexto for Editar, então o ponto de interrupção será acionado quando você depurar plugins.Se você clicar em Contexto Personalizado, a janela indica o contexto atual.

Quebras condicionais e pontos de log
O Studio oferece variações nomeadas de pontos de interrupção para tornar a inserção de pontos de interrupção mais rápida.Para inserir uma variação nomeada, clique com o botão direito na margem à direita do número da linha, então clique na variante que você deseja inserir.

Um ponto de interrupção condicional é um ponto de interrupção com uma condição e uma execução contínua desativada.Os pontos de interrupção condicionais pausam seu script somente se uma condição for verdadeira, então eles são úteis para depurar como funções executam quando certas variáveis têm determinados valores.Os pontos de interrupção condicionais usam os valores das variáveis antes da linha ser executada.Quando você insere um ponto de interrupção condicional, o cursor se concentra na opção Condição para você definir rapidamente.
Um Ponto de Log é um ponto de interrupção com uma Mensagem de Log e Execução Continuada habilitados.Os pontos de log registram mensagens de saída na janela Saída sem interromper seus scripts, para que sejam úteis para depurar valores de variáveis.Os pontos de log usam os valores das variáveis antes da linha ser executada.Quando você insere um Logpoint, o cursor se concentra na Mensagem de Log para que você a defina rapidamente.
Desabilitar pontos de interrupção
Existem muitas maneiras de desativar e reativar um ponto de interrupção:
- Clique no ícone do ponto de pausa.
- Edite o ponto de interrupção e ative sua caixa de seleção Ativada.
- Clique com o botão direito no ícone de ponto de interrupção e clique em Desabilitar Ponto de Interrupção ou Ativar Ponto de Interrupção.
Excluir pontos de interrupção
Para excluir um ponto de interrupção, clique com o botão médio em seu ícone. Você também pode clicar com o botão direito em seu ícone e clicar em Excluir ponto de interrupção .
Janela de pontos de interrupção
A janela de Pontos de Interrupção mostra todos os pontos de interrupção em sua experiência.Para abrir a janela de Pontos de Interrupção, clique na aba Ver na parte superior do Studio, então clique em Pontos de Interrupção.

A janela de pontos de interrupção tem as seguintes colunas: não marcadas, Script, Linha, Linha de Origem, Condição, Mensagem de Log e Continuar a Execução.As colunas não marcadas, Script e Linha sempre são exibidas, mas você pode alternar as outras colunas clicando nos três pontos no canto superior direito da janela.
Na coluna sem rótulo, o rótulo (x3) indica o número de pontos de interrupção na mesma linha de código e o ícone indica a configuração do ponto de interrupção.Os pontos de interrupção na mesma linha compartilham a mesma condição, mensagem de registro e continuação de execução, mas variam em contexto.Você pode editar a configuração de um ponto de interrupção na janela de Pontos de Interrupção.Por exemplo, você pode editar a condição de um ponto de interrupção editando o campo de texto em sua coluna de condição.

Você pode ativar e desativar pontos de interrupção clicando em seu ícone de ponto de interrupção na coluna Ativada.Você também pode clicar nos seguintes botões para habilitar, desabilitare excluir alguns ou todos os pontos de interrupção.
Botão | Ação |
---|---|
![]() | Desabilite todos os pontos de interrupção. Se algum ponto de interrupção for desativado, habilite todas / todoseles. |
![]() | Exclua todos os pontos de interrupção. |
Ícones de quebra de ponto
O ícone de um ponto de interrupção depende se está ativado, tem uma condição e tem uma mensagem de log.Se um ponto de interrupção tiver uma mensagem de log, então ele aparecerá como um ponto de log, independentemente de ter uma condição ou não.
Qual o nome | Ícone | Ativado | Condição | Mensagem de Log |
---|---|---|---|---|
Ponto de Interrupção | ![]() | Sim | Não | Não |
![]() | Não | Não | Não | |
Ponto de Interrupção Condicional | ![]() | Sim | Sim | Não |
![]() | Não | Sim | Não | |
Ponto de Log | ![]() | Sim | Talvez | Sim |
![]() | Não | Talvez | Sim |
Ferramentas de depuração adicionais
Além do depurador, o Studio oferece ferramentas adicionais de depuração para você corrigir problemas e bugs em sua experiência.
Barra de Comando
A Barra de Comando permite que você execute comandos Luau enquanto a experiência está em execução.Está disponível no Studio na aba Ver e no Console do Desenvolvedor.
Console do Desenvolvedor
O Console do Desenvolvedor fornece uma ampla gama de detalhes, incluindo saída de cliente e servidor, uso de memória, performancede rede e muito mais.Para abrir o Consolo do Desenvolvedor enquanto testa ou joga uma experiência, digite /console no chat ou pressione F9.Para mais informações, veja Console de Desenvolvedor.
Arquivos de log
Quando um script imprime ou erra no Studio ou no aplicativo do Jogador, o aplicativo registra a mensagem em um arquivo de log no sistema de arquivos local.Estes arquivos estão localizados em diferentes locais dependendo do sistema operacional.
Janelas
Para acessar arquivos de registro no Windows:
- Abra Explorador de Arquivos .
- Navegue até o diretório %LOCALAPPDATA%\Roblox\logs diretório.
- Clique duas vezes em um registro para abrí-lo. Registros com o mesmo valor XXXXX são da mesma sessão do Studio.
Computador Mac
Para acessar arquivos de registro no Mac:
- Abra Encontrador .
- Na barra de menu, selecione Ir ⟩ Ir para a pasta... .
- Na caixa de diálogo, insira ~/Library/Logs/Roblox.
- Clique duas vezes no resultado para navegar para o diretório de registros do Roblox.
- Dentro da diretória, clique duas vezes em um registro para abrí-lo.
iOS
Você pode coletar registros iOS usando um Mac ou usando um dispositivo iOS.
Para acessar os arquivos de registro iOS em um Mac:
- Conecte o dispositivo iOS a um Mac.
- Abra Encontrador .
- Navegue até Utilidades e abra o aplicativo Console .
- Para preencher registros em tempo real na aplicação do Console, selecione o dispositivo iOS na barra lateral, clique no botão Iniciar e reproduza o problema no dispositivo iOS.
- Para preencher registros arquivados no aplicativo do Console, execute sudo log collect --device-name "[iOS Device Name]" no Terminal .Certifique-se de que não há apostrophos no nome do dispositivo ou você pode obter um erro ao executar o comando.
Andróide
Para acessar arquivos de registro no Android:
- Navegue até Configurações > Sistema > Opções de desenvolvedor .
- Alterne Opções do desenvolvedor em.
- Em um computador, baixe e instale Android Studio.
- No Android Studio, clique em Logcat .
- Conecte o dispositivo Android ao computador para preencher automaticamente o Logcat com registros.