This translation is community contributed and may not be up to date. We only maintain the English version of the documentation. Read this manual in English
O Defold contém um depurador integrado, mas também é possível executar a IDE Lua gratuita e de código aberto ZeroBrane Studio como depurador externo. O ZeroBrane Studio precisa estar instalado para usar os recursos de depuração. O programa é multiplataforma e roda tanto no macOS quanto no Windows.
Baixe o “ZeroBrane Studio” em http://studio.zerobrane.com
Para que o ZeroBrane encontre os arquivos no seu projeto, você precisa apontá-lo para o local do diretório do seu projeto Defold. Uma forma conveniente de descobrir isso é usar a opção Show in Desktop em um arquivo na raiz do seu projeto Defold.

Para configurar o ZeroBrane, selecione Project ▸ Project Directory ▸ Choose...:

Depois que isso for configurado para corresponder ao diretório atual do projeto Defold, deve ser possível ver a árvore de diretórios do projeto Defold no ZeroBrane, além de navegar e abrir os arquivos.
Outras alterações de configuração recomendadas, mas não obrigatórias, podem ser encontradas mais adiante neste documento.
Antes de iniciar uma sessão de depuração, o servidor de depuração integrado do ZeroBrane precisa ser iniciado. A opção de menu para iniciá-lo fica no menu Project. Basta selecionar Project ▸ Start Debugger Server:

A depuração pode ser iniciada em qualquer ponto da vida da aplicação Defold, mas precisa ser iniciada ativamente por um script Lua. O código Lua para iniciar uma sessão de depuração é assim:
Se o seu jogo sair quando dbg.start() for chamado, talvez seja porque o ZeroBrane detectou um problema e enviou o comando de saída para o jogo. Por algum motivo, o ZeroBrane precisa de um arquivo aberto para iniciar a sessão de depuração; caso contrário, ele exibirá:
“Can’t start debugging without an opened file or with the current file not being saved ‘untitled.lua’).”
No ZeroBrane, abra o arquivo ao qual você adicionou dbg.start() para corrigir esse erro.
dbg = require "builtins.scripts.mobdebug"
dbg.start()
Ao inserir o código acima na aplicação, ela se conectará ao servidor de depuração do ZeroBrane (por “localhost”, por padrão) e pausará na próxima instrução a ser executada.
Debugger server started at localhost:8172.
Mapped remote request for '/' to '/Users/my_user/Documents/Projects/Defold_project/'.
Debugging session started in '/Users/my_user/Documents/Projects/Defold_project'.
Agora é possível usar os recursos de depuração disponíveis no ZeroBrane; você pode avançar passo a passo, inspecionar, adicionar e remover breakpoints etc.
A depuração só será ativada para o contexto lua de onde a depuração foi iniciada. Ativar “shared_state” em game.project significa que você pode depurar toda a aplicação, independentemente de onde começou.

Se a tentativa de conexão falhar (possivelmente porque o servidor de depuração não está em execução), sua aplicação continuará a rodar normalmente depois que a tentativa de conexão for feita.
Como a depuração acontece por conexões de rede comuns (TCP), isso permite depuração remota. Isso significa que é possível depurar sua aplicação enquanto ela está rodando em um dispositivo móvel.
A única alteração necessária é no comando que inicia a depuração. Por padrão, start() tentará se conectar ao localhost, mas para depuração remota precisamos especificar manualmente o endereço do servidor de depuração do ZeroBrane, assim:
dbg = require "builtins.scripts.mobdebug"
dbg.start("192.168.5.101")
Isso também significa que é importante garantir conectividade de rede a partir do dispositivo remoto e que firewalls ou softwares similares permitam conexões TCP pela porta 8172. Caso contrário, a aplicação pode travar ao iniciar enquanto tenta estabelecer a conexão com seu servidor de depuração.
É possível fazer o ZeroBrane abrir automaticamente arquivos de script Lua durante a depuração. Isso permite entrar em funções de outros arquivos de origem sem precisar abri-los manualmente.
O primeiro passo é acessar o arquivo de configuração do editor. Recomenda-se alterar a versão de usuário do arquivo.
Adicione o seguinte ao arquivo de configuração:
- to automatically open files requested during debugging
editor.autoactivate = true
