Skip to content

Depuração

Variável de ambiente OXC_LOG

A variável de ambiente OXC_LOG ativa rastreamento em tempo de execução no oxlint e no oxfmt. Quando não está definida, o logging fica totalmente desligado, sem custo em tempo de execução.

Uso básico

bash
# Enable debug logging for oxlint
OXC_LOG=debug oxlint

# Enable debug logging for oxfmt
OXC_LOG=debug oxfmt

# Enable resolver tracing when using import plugin
OXC_LOG=oxc_resolver oxlint --import-plugin

# Enable formatter tracing
OXC_LOG=oxc_formatter oxfmt

Sintaxe de filtro

OXC_LOG usa a sintaxe de filtro do tracing-subscriber:

PadrãoDescrição
debugNível debug em todos os módulos
traceNível trace em todos os módulos
oxc_resolverTodos os logs do módulo oxc_resolver
oxc_resolver=debugNível debug apenas em oxc_resolver
oxc_resolver=traceNível trace apenas em oxc_resolver
oxc_formatter,oxc_resolverVários módulos ao mesmo tempo

Saída

Os logs vão para stderr, para não misturar com o stdout dos diagnósticos do linter ou do código formatado. No oxfmt, nomes de threads e informações de tempo de span entram na saída para ajudar a depurar operações multithread.

Casos de uso comuns

Listar todos os arquivos em processamento:

bash
OXC_LOG=debug oxlint
OXC_LOG=debug oxfmt

Depurar problemas de resolução de módulos:

bash
OXC_LOG=oxc_resolver=debug oxlint --import-plugin

rust-lldb

O rust-lldb pode ser usado para obter informações de panic em builds de debug.

Ative símbolos de debug:

toml
[profile.release]
debug = true
strip = false
panic = "unwind"

Compile o binário:

bash
cargo build --release --bin oxlint --features allocator

Execute o binário:

bash
rust-lldb -- ./target/release/oxlint

Depois que abrir, pressione r para rodar o programa.

Depurar TypeScript no VS Code

Segundo o guia de depuração do repositório TypeScript:

  • renomeie .vscode/launch.template.json para launch.json
  • adicione tests/cases/compiler/foo.ts
  • troque "${fileBasenameNoExtension}" por foo.ts
  • defina um breakpoint em algum ponto do código-fonte do TypeScript
  • no menu "Run - Debugging", ou pressione F5
  • durante a depuração, o tsc avalia arquivos globais .d.ts antes do arquivo de teste alvo
  • Debug.formatXXX(value) em src/compiler/debug.ts pode ser usado para imprimir valores de enum
  • use a seção "WATCH" para "ver" o valor que interessa

Depurar o linter no VS Code

É simples depurar o linter para um projeto npm em outro lugar com o CodeLLDB.

Em .vscode/launch.json, ajuste os campos da configuração conforme precisar:

  • cwd: caminho absoluto para o projeto npm
  • args: argumentos passados ao linter
json
{
  "type": "lldb",
  "request": "launch",
  "name": "Debug Oxlint",
  "cargo": {
    "env": {
      "RUSTFLAGS": "-g"
    },
    "args": ["build", "--bin=oxlint", "--package=oxlint"],
    "filter": {
      "name": "oxlint",
      "kind": "bin"
    }
  },
  "cwd": "PATH-TO-TEST-PROJECT", 
  "args": ["--ARGS-TO-OXLINT"] 
}

Abra o painel de Depuração do VS Code, selecione Debug Oxlint e inicie a depuração.

O processo será iniciado com o cwd indicado — como se você rodasse o linter no projeto de teste com o depurador anexado.