O Studio oferece muitas ferramentas de depuração e fluxos de trabalho comumente encontrados em Ambientes de Desenvolvimento Integrados (IDEs). Estas ajudam você a inspecionar e resolver erros em scripts enquanto eles são executados.
Depuração com Pontos de Interrupção
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, monitorar variáveis e inspecionar a pilha de chamadas. Pontos de interrupção são uma das formas mais eficazes de depurar funções, por isso são uma das ferramentas de depuração mais importantes.
Gerenciamento
No Editor de Scripts, você pode inserir vários tipos de pontos de interrupção e editar a configuração de um ponto de interrupção a qualquer momento, incluindo durante sessões de teste. Se você editar pontos de interrupção durante uma sessão de teste, as edições persistem mesmo após você terminá-la. Você também pode editar um ponto de interrupção que está ativamente pausando sua sessão de teste, mas as alterações não se aplicam até a próxima sessão de teste.
Inserir
Pontos de interrupção têm múltiplas variações e podem ser inseridos em qualquer linha de código executável da seguinte forma:
Para inserir um ponto de interrupção padrão em uma linha de código, clique na margem diretamente à direita do número da linha. Alternativamente, clique com o botão direito na margem e selecione Inserir Ponto de Interrupção. O ícone do ponto de interrupção aparece como um círculo vermelho.

Desabilitar
Para desabilitar temporariamente um ponto de interrupção sem excluí-lo, use qualquer um dos seguintes fluxos de trabalho:
- Clique no ícone do ponto de interrupção.
- Clique com o botão direito no ícone do ponto de interrupção e selecione Desabilitar Ponto de Interrupção.
- Edite o ponto de interrupção e ative ou desative a caixa de seleção Habilitado.
Um ponto de interrupção desabilitado aparece como uma versão vazia de seu ícone habilitado, por exemplo, um círculo vazio para um ponto de interrupção padrão desabilitado, ou um losango vazio para um logpoint desabilitado.


Excluir
Para excluir um ponto de interrupção, clique com o botão do meio em seu ícone ou clique com o botão direito em seu ícone e selecione Excluir Ponto de Interrupção.
Editar
Você pode editar a configuração de um ponto de interrupção a qualquer momento, inclusive durante sessões de teste. Se você editar pontos de interrupção durante uma sessão de teste, as edições persistem mesmo após você terminá-la. Você também pode editar um ponto de interrupção que está ativamente pausando sua sessão de teste, mas as mudanças não se aplicam até a próxima sessão de teste.
Para editar um ponto de interrupção:
Clique com o botão direito no ícone do ponto de interrupção e selecione Editar Ponto de Interrupção.
Na janela Editar Ponto de Interrupção, configure o ponto de interrupção conforme desejado. Você pode misturar essas configurações para melhor atender suas necessidades de depuração.
Opção Descrição Condição Uma expressão opcional que determina se o ponto de interrupção é ativado. Se a condição estiver vazia, o ponto de interrupção sempre é ativado. Se a condição existir, o ponto de interrupção se torna um ponto de interrupção condicional e é ativado apenas se a condição for verdadeira. Por exemplo, se você quiser que o ponto de interrupção seja ativado apenas se a variável var for igual a 10, defina a condição como var == 10. Mensagem de Log Uma expressão que imprime na janela Saída quando o ponto de interrupção é atingido. O formato da mensagem de log é o mesmo que o de uma declaração print(). Por exemplo, defina a mensagem de log como "O valor de var:", var para produzir a mesma mensagem que print("O valor de var:", var). Continuar Execução Determina se o ponto de interrupção pausa o script ao ser ativado. Esta opção está desativada por padrão, a menos que o ponto de interrupção inserido seja um logpoint. Remover Ponto de Interrupção ao Atingir Se marcada, o ponto de interrupção se remove automaticamente após a primeira sessão de teste, efetivamente tornando-se um ponto de interrupção temporário. Disparar em O contexto de um ponto de interrupção determina se ele deve ser ativado no Cliente (scripts do lado do cliente), Servidor (scripts do lado do servidor) ou Edição (debugando scripts plugin). Se você escolher Contexto Personalizado, a janela indicará os contextos de disparo atuais.
Fluxo de Trabalho
O fluxo de trabalho típico para depuração com pontos de interrupção é o seguinte:
Abra o script que você gostaria de depurar e insira pontos de interrupção nas linhas de código que você deseja examinar.
A partir do mezzanine do Studio, inicie um teste para começar a depuração.

Quando o script atinge um ponto de interrupção, a sessão de teste pausa a menos que aquele ponto de interrupção esteja configurado para continuar a execução. Uma seta amarela sobre o ponto de interrupção indica qual linha de código será executada a seguir.

Enquanto o script está pausado, inspecione a janela Pontos de Interrupção, a janela Monitorar, a janela Pilha de Chamadas, a janela Saída e o Editor de Scripts para encontrar informações sobre valores de variáveis e execuções de funções.
Para continuar executando o código após atingir um ponto de interrupção, clique em Retomar Scripts no mezzanine.

Você também pode executar o código uma linha de cada vez com os botões de passo no mezzanine:

Ação Atalho Descrição Entrar F11 O botão Entrar move o depurador para dentro do código da função na linha atual. Se não houver função na linha atual, o depurador se move para a próxima linha. Pular F10 O botão Pular move o depurador para a próxima linha de código, não entrando em funções. Sair ShiftF11 O botão Sair 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. Quando você terminar de depurar a sessão atual, clique no botão Parar.

Monitoramento
O Studio inclui várias janelas e ferramentas para monitorar valores de variáveis e execuções de funções enquanto depura. Com essas informações, você pode encontrar a raiz da maioria dos problemas em seus scripts.

Pontos de Interrupção
A janela Pontos de Interrupção é uma visão unificada que mostra todos os pontos de interrupção em todos os scripts. Para abri-la, clique em Pontos de Interrupção na barra de ferramentas da aba Script do Studio, ou navegue até o menu Janela ⟩ Depurar e ative Pontos de Interrupção.
Na janela, as colunas Script e Linha sempre são exibidas, e você pode ativar/desativar outras colunas de configuração através do menu ⋮ no canto superior direito. Dentro da coluna Script, clique com o botão direito em qualquer ponto de interrupção para revelar um menu de opções para editar, desabilitar/habilitar, excluir ou pular para a linha do ponto de interrupção dentro do script.

Enquanto estiver em uma sessão de depuração, a coluna mais à esquerda mostra (x3), que indica os múltiplos contextos (Cliente, Servidor, Edição) para o ponto de interrupção. Ao expandir o ramo de qualquer ponto de interrupção, você pode clicar no ícone ao lado de um contexto específico para desabilitar/habilitar ele para aquele contexto, como desabilitar um ponto de interrupção apenas no contexto Cliente enquanto o mantém habilitado no contexto Servidor.

Pilha de Chamadas
A janela Pilha de Chamadas, acessível na barra de ferramentas da aba Script do Studio ou no menu Janela ⟩ Depurar, mostra qual linha de código será executada a seguir quando o depurador atingir um ponto de interrupção. Se você chamar funções de dentro de outras funções, isso indica quais linhas aquelas funções foram chamadas, permitindo que você confirme se o fluxo de chamada real corresponde ao fluxo esperado.


Enquanto o script pausa nos pontos de interrupção, use os botões de passo no mezzanine para entrar, pular ou sair de uma função/linha conforme descrito no fluxo de trabalho.

Monitorar
A janela Monitorar, acessível na barra de ferramentas da aba Script do Studio ou no menu Janela ⟩ Depurar, permite que você monitore ativamente os valores de variáveis e expressões enquanto avança pelos pontos de interrupção.
A aba Variáveis mostra informações sobre as variáveis atuais em escopo, filtráveis ao clicar no botão Todas as Escopos na barra superior da janela. Expandir um ramo mostra os membros daquela variável ou instância e seus valores. Você também pode monitorar qualquer variável destacando-a duas vezes no Editor de Scripts, clicando com o botão direito e selecionando Adicionar Monitor no menu pop-up.


Editor de Scripts
O depurador está integrado ao 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 a composição de uma tabela e suas chaves/valores contidos.

Ferramentas adicionais de depuração
Além do depurador, o Studio oferece ferramentas adicionais de depuração para você corrigir problemas e bugs em sua experiência.
Barra de Comandos
A Barra de Comandos permite que você execute comandos Luau enquanto a experiência está em execução. Está disponível no Studio a partir do menu Janela ⟩ Script e na Consola do Desenvolvedor.
Consola do Desenvolvedor
A Consola do Desenvolvedor fornece uma ampla gama de detalhes, incluindo saída do cliente e do servidor, uso de memória, desempenho da rede e mais. Para abrir a consola enquanto testa ou joga uma experiência, digite /console no chat ou pressione F9.
Arquivos de Log
Quando um script imprime ou gera erros no Studio ou no aplicativo do jogador, o aplicativo registra a mensagem em um arquivo de log no sistema de arquivos local. Esses arquivos estão localizados em locais diferentes dependendo do sistema operacional.
Windows
Para acessar arquivos de log no Windows:
- Abra o Explorador de Arquivos.
- Navegue até o diretório %LOCALAPPDATA%\Roblox\logs.
- Clique duas vezes em um log para abri-lo. Logs com o mesmo valor XXXXX são da mesma sessão do Studio.
Mac
Para acessar arquivos de log no Mac:
- Abra o Finder.
- Na barra de menu, selecione Ir ⟩ Ir para a Pasta....
- No diálogo, digite ~/Library/Logs/Roblox.
- Clique duas vezes no resultado para navegar até o diretório de logs do Roblox.
- Dentro do diretório, clique duas vezes em um log para abri-lo.
iOS
Você pode coletar logs do iOS usando um Mac ou usando um dispositivo iOS.
Para acessar arquivos de log do iOS em um Mac:
- Conecte o dispositivo iOS a um Mac.
- Abra o Finder.
- Navegue até Utilitários e abra o aplicativo Console.
- Para preencher registros em tempo real no aplicativo 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 Console, execute sudo log collect --device-name "[Nome do Dispositivo iOS]" no Terminal. Certifique-se de que não haja apóstrofo no nome do dispositivo ou você pode receber um erro ao executar o comando.
Android
Para acessar arquivos de log no Android:
- Navegue até Ajustes ⟩ Sistema ⟩ Opções do Desenvolvedor.
- Ative Opções do Desenvolvedor.
- Em um computador, baixe e instale o Android Studio.
- No Android Studio, clique em Logcat.
- Conecte o dispositivo Android ao computador para preencher automaticamente o Logcat com logs.