53 minutes ago
🐛 PawnPro Debugger v0.2.0
Depurador visual (DAP) para Pawn — SA-MP e open.mp
Visual debugger (DAP) for Pawn — SA-MP and open.mp
github.com/NullSablex/PawnPro-Debugger
Depurador visual (DAP) para Pawn — SA-MP e open.mp
Visual debugger (DAP) for Pawn — SA-MP and open.mp
github.com/NullSablex/PawnPro-Debugger
Quote:🇧🇷 Nova versão do Debugger no ar 🎉 — e hoje sai também a nova versão da extensão PawnPro, com esta atualização do debugger integrada e outras novidades e melhorias no editor. A ideia desta release é simples: parar de depurar gamemode no printf.
🇬🇧 New Debugger release out 🎉 — and the new PawnPro extension version ships today too, with this debugger update integrated plus other improvements. The point of this release is simple: stop debugging gamemodes with printf.
✨ O que tem de novo / What's new
🧭 Call stack completa
🇧🇷 A pilha de chamadas inteira, não só a linha atual: função, linha e variáveis de cada frame. Clicou no frame do chamador, a inspeção acompanha.
🇬🇧 The whole call stack, not just the current line: function, line and variables per frame. Click a caller's frame and inspection follows it.
👁️ Data breakpoints
🇧🇷 "Break on Value Change": pausa quando um valor muda — globais, locais e elementos de array (arr[3]). Ideal pra achar quem está escrevendo onde não devia.
🇬🇧 "Break on Value Change": pauses when a value changes — globals, locals and array elements. Great for finding who writes where they shouldn't.
💥 Pausa no erro de runtime, na linha exata
🇧🇷 Divisão por zero, índice fora do limite e agora também colisão pilha/heap, underflow de heap e acesso inválido à memória. O debugger pausa antes da VM abortar, mostrando a linha e as variáveis. É conservador por design: se não tiver certeza, não acusa — nada de falso-positivo.
🇬🇧 Divide by zero, out-of-bounds and now stack/heap collision, heap underflow and invalid memory access. It pauses before the VM aborts, showing the line and the variables. Conservative by design: no false positives.
🔢 Arrays e strings de verdade
🇧🇷 Arrays expandem elemento a elemento no painel, e array de char aparece como string. Dá pra editar um elemento direto (arr[idx] = 10) no watch ou no console.
🇬🇧 Arrays expand element by element, char arrays show as strings, and you can edit an element right from the watch or console.
🧠 Watch, hover e autocomplete
🇧🇷 Expressões simples no watch e ao passar o mouse (+ - * / % e comparações, com arr[idx]), e sugestão de variáveis em escopo no console.
🇬🇧 Simple expressions in watch and on hover, plus in-scope variable completion in the console.
🧬 Memória crua (hex view)
🇧🇷 Qualquer variável abre a memória de dados em hexadecimal, pra quando o valor formatado não conta a história toda.
🇬🇧 Any variable opens raw data memory in hex, for when the formatted value isn't the whole story.
🌍 Mensagens e documentação em mais idiomas
🇧🇷 As mensagens seguem o idioma do editor (pt-BR, en, es, ro, ru) e a documentação agora tem versão em inglês.
🇬🇧 Messages follow the editor's language (pt-BR, en, es, ro, ru) and the docs now have an English version.
📋 Changelog completo / Full changelog
CHANGELOG.md
🎮 Como se usa na prática / How it works in practice
🇧🇷 Você precisa de duas coisas: a extensão PawnPro no editor e o plugin do debugger no seu servidor local — uma vez só. Depois disso:
- F5 no gamemode. A extensão recompila com -d3, sobe o servidor e conecta sozinha.
- Clique na margem pra colocar um breakpoint. Botão direito nele: condição (playerid == 3), contagem de acertos (%10 = a cada 10) ou logpoint — que imprime Vida: {health} no console sem pausar e sem recompilar.
- Pausou: veja variáveis, mude o valor na hora, ande com F10/F11 e navegue pelos frames da call stack.
- Botão direito numa variável → Break on Value Change pra parar quando ela mudar.
🇬🇧 You need two things: the PawnPro extension and the debugger plugin in your local server — once. Then it's F5, breakpoints in the gutter (with conditions, hit counts and logpoints), stepping, and value-change breakpoints from the Variables panel.
🤔 E qual a diferença de não usar? / Why bother?
🇧🇷 Sem debugger, o ciclo num servidor SA-MP ou open.mp é conhecido: espalhar printf, recompilar, reiniciar, ler log, apagar os printf — e repetir quando o problema volta. Quando o script dá run time error, você recebe o erro e reconstrói o resto de cabeça.
Com o debugger, o programa para no ponto: você vê o valor real de cada variável, quem chamou quem, e a linha exata onde o erro ia acontecer — antes de a VM abortar. Sem recompilar pra investigar, sem sujar o código de log temporário.
🇬🇧 Without a debugger the loop is printf → recompile → restart → read logs → delete the printfs. With it, execution stops at the spot: real values, who called who, and the exact line of a runtime error before the VM aborts.
Quote:🇧🇷 Importante: isso é uma ferramenta de desenvolvimento local. Enquanto a execução está pausada, o servidor fica congelado — é o comportamento esperado ao depurar passo a passo, e o motivo de não ser algo pra rodar em servidor de produção.
🇬🇧 Heads-up: this is a local development tool. While paused, the server is frozen — expected when single-stepping, and why it isn't meant for production.
🎬 Em breve / Coming soon
🇧🇷 Estão a caminho vídeos curtos mostrando como instalar a extensão, colocar o plugin no servidor e usar o debugger no dia a dia — mini-tutoriais diretos ao ponto. Sem data definida ainda; sai quando estiver bom.
🇬🇧 Short videos are on the way: installing the extension, setting up the plugin and using the debugger day to day. No date yet — they ship when they're ready.
- PawnPro — 🇧🇷 extensão do editor (nova versão hoje) / 🇬🇧 the editor extension (new version today)
- PawnPro Debugger — 🇧🇷 este projeto / 🇬🇧 this project
- Documentação / Docs — 🇧🇷 começando, recursos e como funciona por dentro
- rust-samp — 🇧🇷 SDK em Rust que sustenta o debugger / 🇬🇧 the Rust SDK underneath
🇧🇷 Feedback, issues e PRs são bem-vindos — inclusive relato de caso que o debugger não pegou.
🇬🇧 Feedback, issues and PRs are welcome — including cases the debugger failed to catch.
⭐ github.com/NullSablex/PawnPro-Debugger
🇬🇧 Feedback, issues and PRs are welcome — including cases the debugger failed to catch.
⭐ github.com/NullSablex/PawnPro-Debugger
