Documentação / O IDE
Depuração
Depure Java, Node.js, o navegador, Python, Go, .NET e PL/SQL em um mesmo painel, com configurações sugeridas e depuradores que só são instalados com a sua permissão.
O Yuli depura cada linguagem com o seu depurador de referência e mostra tudo no mesmo painel: pilha, variáveis, console de avaliação e breakpoints. O que estiver faltando só é instalado se você autorizar.
| Linguagem | Depurador | Como o Yuli o inicia |
|---|---|---|
| Java e JVM | Cliente JDWP nativo | Inicia a JVM ou se anexa a ela |
| Node.js | Chrome DevTools Protocol (CDP), com source maps | node --inspect ou anexar a um processo |
| Navegador | CDP no Chrome, Chromium ou Edge | Um perfil separado, nunca o seu |
| Python | debugpy (DAP) | python -m debugpy.adapter, com o ambiente virtual do projeto |
| Go | Delve (DAP) | dlv dap, ou anexar a um dlv --headless em execução |
| .NET | netcoredbg (DAP) | netcoredbg --interpreter=vscode |
| Oracle PL/SQL | DBMS_DEBUG do Oracle |
A partir do painel de banco de dados |
Sua primeira sessão
Configurações de depuração
O diálogo Configurações de depuração é aberto pelo botão do painel Depuração ou pelo menu do painel Execução (Configurações de depuração…).
- Tipos: Java, Node.js, Python, Go, .NET e Navegador.
- Modos: Iniciar (o Yuli inicia o programa) ou Anexar (ele se conecta a um que já está rodando).
- Salvas: as que você criou. Sugeridas para este projeto: as que o Yuli encontra no seu código.
| Campo | Para quê |
|---|---|
Programa, Módulo (python -m), Classe principal |
O que é executado |
| Argumentos, Diretório de trabalho, Variáveis de ambiente | Como é executado |
| Interpretador, Opções de compilação | O Python ou os build flags a usar |
| Somente meu código, Parar ao entrar | Onde para |
| Host, Porta, ID do processo | A que se anexa |
| URL, Raiz web, Navegador | Depuração no navegador |
O que o Yuli sugere
| Projeto | Sugestão |
|---|---|
| Python | main.py, app.py ou manage.py (este com runserver --noreload), e «Python: attach 5678» |
| Go | «Go: .» se houver um go.mod |
| .NET | O arquivo de projeto |
| Node.js | O main do package.json |
| Navegador | Se o projeto usa vite, react-scripts, next, Angular, vue ou svelte. A URL usa a porta 5173 com vite, 4200 com Angular e 3000 nos demais |
As configurações são salvas em debug-configs.json, dentro da pasta de trabalho que o Yuli mantém para cada projeto, não no seu repositório.
Anexar a um processo
No modo Anexar, o Yuli procura o que pode ser depurado no seu computador: processos do Node iniciados com --inspect, processos de Python, Go e .NET, JVMs com JDWP e abas do navegador com DevTools. Se não houver nenhum de um tipo, ele avisa; por exemplo: «Não há processos do Node com --inspect escutando.»
Java
- Cliente JDWP nativo, com árvore de variáveis, valores em linha sobre o código e valores legíveis (um objeto como
Owner{id=3, …}, uma data como2026-10-15, uma coleção com o seu tamanho). - Breakpoints condicionais, por contagem, logpoints e de exceção.
- Hot swap (
Ctrl+Alt+F10): recompila com a ferramenta do projeto e redefine as classes alteradas sem reiniciar a sessão.
O avaliador de expressões
Ele é usado no console de avaliação, nas expressões observadas, nas condições dos breakpoints e nas mensagens dos logpoints.
| Aceita | Não aceita |
|---|---|
?: || && | ^ & == != < > <= >= instanceof << >> >>> + - * / % |
new |
Unários + - ! ~ e conversões de tipo |
Atribuições, ++ e -- |
Acesso a membros, chamadas de métodos e índices [i] |
Lambdas |
As chamadas de métodos executam código real na JVM que você está depurando. Evite métodos que alterem o estado.
Propriedades do breakpoint
Em Propriedades do breakpoint, você ajusta como cada um se comporta:
- Condição: expressão Java; para apenas quando é verdadeira.
- Ocorrência número: para nessa passagem pela linha.
- Somente registrar com Mensagem: escreve no console sem parar.
Se uma condição não puder ser avaliada, o depurador não a ignora em silêncio: ele para uma vez e mostra o motivo, por exemplo «[condição] «total > limite» (linha 42) não pôde ser avaliada: …».
Node.js e o navegador
- Source maps (v3): você coloca o breakpoint no seu
.ts,.tsxou no código original, e o Yuli o transfere para o código gerado. Quando a execução para, a pilha volta a mostrar os seus arquivos. - Anexar: a qualquer processo do Node que escute com
--inspect. - Navegador: o Yuli abre o Chrome, o Chromium ou o Edge com um perfil separado (
--user-data-dir) e a porta de depuração remota. O seu perfil normal, com as suas sessões e extensões, não é tocado. - O hot swap não se aplica ao código com source maps: use o recarregamento a quente do servidor de desenvolvimento.
Python, Go e .NET
Os três usam o protocolo DAP. O Python usa o ambiente virtual do projeto (VIRTUAL_ENV primeiro, depois python3 ou python). O Go pode iniciar dlv dap ou se anexar a um dlv --headless que você já tenha em execução. No editor, o ▶ da margem também oferece depurar o if __name__ == "__main__": do Python, func main e func TestX do Go e o static void Main( do C#.
Instalar o depurador
Se faltar o depurador, aparece «Falta o depurador de…» com o que o Yuli vai fazer, e os botões Instalar e depurar e Cancelar.
O Yuli instala o debugpy com pip no ambiente Python do projeto (ou com --user se você usa o Python do sistema):
pip install debugpyO Yuli compila e instala o Delve com o seu Go nas ferramentas gerenciadas dele (o Delve não publica binários). Se a versão mais recente do Delve exigir um Go mais novo, ele usa a mais recente compatível com o seu.
go install github.com/go-delve/delve/cmd/dlv@latestEle é instalado em <runtimes>/delve/bin (a pasta de runtimes do Yuli; veja Servidores de linguagem e build).
O Yuli baixa o netcoredbg (licença MIT) de github.com/Samsung/netcoredbg/releases/latest e o guarda em <runtimes>/netcoredbg.
Há versão para Windows x64, Linux x64 e arm64, e macOS (a de x64, que no Apple Silicon roda com Rosetta). Em outras plataformas, o Yuli avisa que ele não está disponível.
Iniciar uma sessão nunca instala nada por conta própria. Nada é baixado nem executado sem a sua permissão; se a instalação falhar, o registro fica à vista no mesmo aviso.
PL/SQL
O Yuli depura procedimentos, funções e pacotes do Oracle com DBMS_DEBUG.
- A conta precisa de
DEBUG CONNECT SESSIONeDEBUGsobre o objeto (ouDEBUG ANY PROCEDURE). - O Yuli recompila o objeto com
COMPILE DEBUG. - Teclas:
F5continuar,F10próxima linha,F11entrar eShift+F11sair.
Atalhos
| Ação | Atalho |
|---|---|
| Depurar a última configuração | Shift+F9 |
| Continuar | F9 |
| Próxima linha (step over) | F8 |
| Entrar, somente o seu código (step into) | F7 |
| Forçar entrada | Alt+Shift+F7 |
| Sair do método | Shift+F8 |
| Recarregar classes modificadas (hot swap) | Ctrl+Alt+F10 |
Com a IA
Quando um teste ou uma etapa falha, Perguntar à IA pela causa aparece no painel Depuração, no explorador de testes e na verificação de Alterações da IA. O botão prepara o contexto (o erro, a pilha, o código) e o deixa no chat: não o envia; você decide o que perguntar.
Veja também Executar e depurar e Servidores de linguagem e build.