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:

  1. Estado antes de abstração

    O programador vê a máquina antes de ver “features”.

  2. Tempo como primeira classe

    Cada ação é analisada no contexto do frame e dos ciclos.

  3. 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

< Voltar | Sumário | Adiante >