5.1 KiB
< Voltar | Sumário | Adiante >
🛠️ Debug, Inspeção e Profiling
1. Visão Geral
PROMETEU foi projetado para ser observado.
Debug, inspeção e profiling não são ferramentas externas opcionais —
eles são partes integrantes da máquina.
Nada acontece sem deixar rastros.
Nada consome recursos sem ser medido.
Nada falha sem explicação.
PROMETEU não esconde estado. PROMETEU expõe comportamento.
2. Filosofia de Debug em PROMETEU
PROMETEU segue três princípios fundamentais de debug:
-
Estado antes de abstração
O programador vê a máquina antes de ver “features”.
-
Tempo como primeira classe
Cada ação é analisada no contexto do frame e dos ciclos.
-
Observação não altera execução
Debug nunca muda o comportamento do sistema.
3. Modos de Execução
PROMETEU opera em três modos principais:
3.1 Modo Normal
- execução contínua
- sem inspeção detalhada
- foco em jogo e experiência
3.2 Modo Debug
- execução controlada
- acesso a estado interno
- pausas e stepping
Este modo é usado para:
- aprendizado
- investigação
- correção de erros
3.3 Modo Certificação
- execução determinística
- métricas coletadas
- geração de relatório
Nenhum modo altera o resultado lógico do programa.
4. Debug de Execução
4.1 Pausa e Continuação
O sistema pode ser pausado em pontos seguros:
- início do frame
- antes de UPDATE
- após DRAW
- antes do SYNC
Durante pausa:
- estado é congelado
- buffers não são trocados
- tempo lógico não avança
4.2 Step-by-Step
PROMETEU permite stepping em diferentes níveis:
- por frame
- por função
- por instrução da VM
Stepping por instrução revela:
- Program Counter (PC)
- instrução atual
- pilha de operandos
- call stack
5. Inspeção de Estado
5.1 Pilhas
PROMETEU permite inspecionar:
- Operand Stack
- Call Stack
Para cada frame:
- conteúdo
- profundidade
- crescimento e limpeza
Stack overflow e underflow são imediatamente visíveis.
5.2 Heap
O heap pode ser inspecionado em tempo real:
- tamanho total
- uso atual
- pico de uso
- objetos vivos
O programador pode observar:
- padrões de alocação
- fragmentação
- pressão de GC
5.3 Espaço Global
Variáveis globais:
- valores atuais
- referências
- inicialização
Globais são visíveis como RAM estática.
6. Debug Gráfico
PROMETEU permite inspecionar o sistema gráfico:
- front buffer
- back buffer
- estado da paleta
- sprites ativos
É possível:
- congelar a imagem
- observar buffers separadamente
- identificar redraw excessivo
7. Profiling de Tempo (Ciclos)
7.1 Medição por Frame
Para cada frame, PROMETEU registra:
- ciclos totais usados
- ciclos por subsistema
- picos de execução
Exemplo conceitual:
Frame 18231:
Total:9,842/10,000cycles
UPDATE:4,210
DRAW:3,180
AUDIO:920
SYSTEM:612
7.2 Profiling por Função
PROMETEU pode associar ciclos a:
- funções
- métodos
- blocos lógicos
Isso permite responder:
“onde o tempo está sendo gasto?”
7.3 Profiling por Instrução
No nível mais baixo, o sistema pode exibir:
- instruções executadas
- custo individual
- frequência
Esse nível é especialmente útil para:
- ensino de VM
- otimização profunda
- análise de bytecode
8. Profiling de Memória
PROMETEU registra:
- uso médio de heap
- pico de heap
- alocações por frame
- frequência de GC
Exemplo:
Heap:
Avg:24KB
Peak:34KB❌
Limit:32KB
Esses dados alimentam diretamente a certificação.
9. Breakpoints e Watchpoints
9.1 Breakpoints
PROMETEU suporta breakpoints em:
- frames específicos
- funções
- instruções da VM
Breakpoints:
- pausam execução
- preservam estado
- não alteram comportamento
9.2 Watchpoints
Watchpoints monitoram:
- variáveis
- endereços de heap
- valores específicos
A execução pode pausar quando:
- um valor muda
- um limite é ultrapassado
10. Debug de Eventos e Interrupções
PROMETEU permite observar:
- fila de eventos
- timers ativos
- interrupções ocorridas
Cada evento possui:
- origem
- frame
- custo
- consequência
Nada acontece “em silêncio”.
11. Integração com CAP e Certificação
Todos os dados de debug e profiling:
- alimentam o relatório de certificação
- são coletados de forma determinística
- não dependem de ferramentas externas
O relatório final é:
- reproduzível
- auditável
- explicável
12. Uso Pedagógico
Este sistema permite ensinar:
- como debugar sistemas reais
- como ler métricas
- como correlacionar tempo e memória
- como justificar decisões técnicas
O aluno aprende:
debug não é tentativa e erro, é observação informada.
13. Resumo
- debug é parte do sistema
- inspeção é completa
- profiling é determinístico
- tempo e memória são visíveis
- certificação é baseada em evidência