Attention: Here be dragons
This is the latest
(unstable) version of this documentation, which may document features
not available in or compatible with released stable versions of Godot.
Checking the stable version of the documentation...
Painel do depurador
Muitas das ferramentas de depuração do Godot, incluindo o depurador, podem ser encontradas no painel do depurador na parte inferior da tela. Clique em Debugger para abri-lo.
O painel do depurador é dividido em várias abas, cada uma focada em uma tarefa específica.
Stack Trace (Rastreamento de Pilha)
A aba Stack Trace abre automaticamente quando o compilador do GDScript atinge um breakpoint em seu código.
Ela fornece um rastreamento de pilha, informações sobre o estado do objeto e botões para controlar a execução do programa. Quando o depurador é interrompido em um breakpoint, uma seta de triângulo verde fica visível na calha do editor de script. Essa seta indica la linha de código em que o depurador parou.
Dica
Você pode criar um breakpoint clicando na calha à esquerda do editor de script (à esquerda dos números das linhas). Ao passar o mouse sobre essa calha, você verá um ponto vermelho transparente aparecer, que se transforma em um ponto vermelho opaco depois que o breakpoint é colocado por meio de um clique. Clique no ponto vermelho novamente para remover o breakpoint. Os breakpoints criados dessa forma persistem entre as reinicializações do editor, mesmo que o script não tenha sido salvo ao sair do editor.
Você também pode usar a palavra-chave breakpoint no GDScript para criar um breakpoint que é armazenado no próprio script. Ao contrário dos breakpoints criados ao clicar na calha, esse breakpoint baseado em palavra-chave é persistente em diferentes máquinas ao usar controle de versão.
Você pode usar os botões no canto superior direito para:
Pular todos os breakpoints. Dessa forma, você pode salvar os breakpoints para futuras sessões de depuração.
Copiar a mensagem de erro atual.
Step Into (Entrar) no código. Este botão leva você para a próxima linha de código e, se for uma função, ele avança linha por linha através da função.
Step Over (Avançar Linha) no código. Este botão vai para a próxima linha de código, mas não avança linha por linha através das funções.
Break (Interromper). Este botão pausa a execução do jogo.
Continue (Continuar). Este botão retoma o jogo após um breakpoint ou pausa.
Nota
O uso do depurador e de breakpoints em tool scripts não é suportado atualmente. Os breakpoints colocados no editor de script ou usando a palavra-chave breakpoint são ignorados. Em vez disso, você pode usar instruções de impressão (print) para exibir o conteúdo das variáveis.
Erros
É aqui que as mensagens de erro e aviso são impressas enquanto o jogo está em execução.
Você pode desativar alertas específicos em Configurações do Projeto > Debug > GDScript.
Avaliador
Esta aba contém um avaliador de expressões, também conhecido como um REPL. Este é um complemento mais poderoso para a árvore de Stack Variables (Variáveis de Pilha) disponível na aba Stack Trace.
Quando o projeto é interrompido no depurador (devido a um breakpoint ou erro de script), você pode inserir uma expressão no campo de texto no topo. Se o projeto estiver em execução, o campo de expressão não será editável, portanto, você precisará definir um breakpoint primeiro. As expressões podem ser mantidas entre as execuções desmarcando a opção Clear on Run (Limpar ao Executar), embora sejam perdidas quando o editor é fechado.
As expressões são avaliadas usando a linguagem de expressões do Godot, que permite realizar aritmética e chamar algumas funções dentro da expressão. As expressões podem se referir a variáveis de membro ou variáveis locais dentro do mesmo escopo da linha em que o breakpoint se encontra. Você também pode inserir valores constantes, o que a torna utilizável como uma calculadora embutida.
Considere o seguinte script:
var counter = 0
func _process(delta):
counter += 1
if counter == 5:
var text = "Some text"
breakpoint
elif counter >= 6:
var other_text = "Some other text"
breakpoint
Se o depurador parar na primeira linha que contém breakpoint, as seguintes expressões retornarão valores não nulos:
Expressão constante:
2 * PI + 5Variável de membro:
counter,counter ** 2,sqrt(counter)Variável local ou parâmetro de função:
delta,text,text.to_upper()
Se o depurador parar na segunda linha que contém breakpoint, as seguintes expressões retornarão valores não nulos:
Expressão constante:
2 * PI + 5Variável de membro:
counter,counter ** 2,sqrt(counter)Variável local ou parâmetro de função:
delta,other_text,other_text.to_upper()
Analisador
O profiler (perfilador) é usado para ver qual código está sendo executado enquanto seu projeto está em uso e como isso afeta o desempenho.
Ver também
Uma explicação detalhada de como usar o profiler pode ser encontrada na página dedicada O Profiler.
Profiler Visual
O Visual Profiler (Perfilador Visual) pode ser usado para monitorar o que está consumindo mais tempo ao renderizar um quadro na CPU e na GPU, respectivamente. Isso permite rastrear fontes de potenciais gargalos de CPU e GPU causados pela renderização.
Aviso
O Visual Profiler mede apenas o tempo de CPU gasto em tarefas de renderização, como a realização de draw calls (chamadas de desenho). O Visual Profiler não inclui o tempo de CPU gasto em outras tarefas, como scripts e física. Use a aba padrão do Profiler para rastrear tarefas de CPU não relacionadas à renderização.
Para usar o perfilador visual, execute o projeto, mude para a aba Visual Profiler dentro do painel inferior do Debugger e clique em Start (Iniciar):
Aba do Visual Profiler após clicar em Start, aguardar alguns segundos e clicar em Stop
Dica
Você também pode marcar a opção Autostart (Iniciar Automaticamente), que fará com que o perfilador visual inicie automaticamente na próxima vez que o projeto for executado. Observe que o estado da caixa de seleção Autostart não é preservado entre as sessões do editor.
Você verá categorias e resultados aparecendo enquanto o profiler está em execução. Linhas de gráfico também aparecem, com o lado esquerdo sendo um framegraph de CPU e o lado direito sendo um framegraph de GPU.
Clique em Stop para encerrar o perfilamento, o que manterá os resultados visíveis, mas congelados no lugar. Os resultados permanecem visíveis após interromper o projeto em execução, mas não após sair do editor.
Clique nas categorias de resultados à esquerda para destacá-las nos gráficos de CPU e GPU à direita. Você também pode clicar no gráfico para mover o cursor para um número de quadro específico e destacar o tipo de dados selecionado nas categorias de resultados à esquerda.
Você pode alternar a exibição dos resultados entre um valor de tempo (em milissegundos por quadro) ou uma porcentagem do tempo de quadro ideal (target frametime). A configuração do editor debugger/profiler_target_fps controla o valor do tempo de quadro ideal de acordo com o FPS especificado.
Se ocorrerem picos na taxa de quadros (framerate spikes) durante o perfilamento, isso pode fazer com que o gráfico fique mal dimensionado. Desative a opção Fit to Frame (Ajustar ao Quadro) para que o gráfico faça zoom na parte de 60 FPS+.
Nota
Lembre-se de que os resultados do Visual Profiler podem variar drasticamente com base na resolução da viewport, que é determinada pelo tamanho da janela se estiver usando os modos de redimensionamento disabled ou canvas_items.
Ao comparar resultados entre execuções diferentes, certifique-se de usar o mesmo tamanho de viewport para todas as execuções.
O Visual Profiler é suportado ao usar qualquer método de renderização (Forward+, Mobile ou Compatibility), mas las categorias relatadas variarão dependendo do método de renderização atual, bem como dos recursos gráficos ativados. Por exemplo, ao usar o Forward+, uma cena 2D simples com luzes que projetam sombras resultará no aparecimento das seguintes categorias:
Exemplos de resultados de uma cena 2D no Visual Profiler
Para dar outro exemplo com o Forward+, uma cena 3D com luzes que projetam sombras e vários efeitos ativados resultará nas seguintes categorias ativadas:
Exemplos de resultados de uma cena 3D no Visual Profiler
Observe como no exemplo 3D, várias das categorias têm (Parallel) anexado ao seu nome. Isso sugere que múltiplas tarefas estão sendo executadas em paralelo na GPU. Isso geralmente significa que desativar apenas um dos recursos envolvidos não melhorará o desempenho tanto quanto o esperado, já que a outra tarefa ainda precisará ser executada sequencialmente.
Nota
O Visual Profiler não é suportado ao usar o renderizador Compatibility no macOS, devido a limitações da plataforma.
Analisador de Rede
O Network Profiler (Perfilador de Rede) contém uma lista de todos os nós que se comunicam através da API de multiplayer e, para cada um, alguns contadores sobre a quantidade de interações de rede de entrada e saída. Ele também possui um medidor de largura de banda que exibe o uso total da largura de banda a qualquer momento.
Nota
O medidor de largura de banda não leva em consideração o próprio sistema de compressão da API Multijogador de alto nível (High-level multiplayer). Isso significa que alterar o algoritmo de compressão utilizado não mudará as métricas relatadas pelo medidor de largura de banda.
Monitores
Os monitores são gráficos de vários aspectos do jogo enquanto ele está em execução, tais como FPS, uso de memória, quantos nós estão em uma cena e mais. Todos os monitores acompanham as estatísticas automaticamente, de modo que mesmo se um monitor não estiver aberto enquanto o jogo está rodando, você pode abri-lo mais tarde e ver como os valores mudaram.
Ver também
Além dos monitores de desempenho padrão, você também pode criar custom performance monitors (monitores de desempenho personalizados) para rastrear valores arbitrários em seu projeto.
Memória de Vídeo
A aba Video RAM mostra o uso de RAM de vídeo do jogo enquanto ele está rodando. Ela fornece uma lista de cada recurso que está usando RAM de vídeo pelo caminho do recurso, o tipo de recurso que ele é, em qual formato está e quanta RAM de vídeo esse recurso está usando. Há também um número total de uso de RAM de vídeo no canto superior direito do painel.
Diversos
A aba Misc (Diversos) contém ferramentas para identificar os nós de controle (control nodes) nos quais você clica em tempo de execução:
Clicked Control informa onde o nó clicado está na árvore de cena.
Clicked Control Type informa o tipo do nó no qual você clicou.