Skip to content

디버깅

OXC_LOG 환경 변수

OXC_LOG 환경 변수는 oxlintoxfmt에서 런타임 추적을 활성화합니다. 설정하지 않으면 로깅은 완전히 비활성화되어 비용 없이 작동합니다.

기본 사용법

bash
# oxlint에 대한 디버그 로깅 활성화
OXC_LOG=debug oxlint

# oxfmt에 대한 디버그 로깅 활성화
OXC_LOG=debug oxfmt

# 임포트 플러그인 사용 시 리졸버 추적 활성화
OXC_LOG=oxc_resolver oxlint --import-plugin

# 포맷터 추적 활성화
OXC_LOG=oxc_formatter oxfmt

필터 구문

OXC_LOGtracing-subscriber 필터 구문을 사용합니다:

패턴설명
debug모든 모듈에 대해 디버그 레벨 활성화
trace모든 모듈에 대해 트레이스 레벨 활성화
oxc_resolveroxc_resolver 모듈의 모든 로그 활성화
oxc_resolver=debugoxc_resolver에 대해 디버그 레벨 활성화
oxc_resolver=traceoxc_resolver에 대해 트레이스 레벨 활성화
oxc_formatter,oxc_resolver여러 모듈 활성화

출력

로그는 stderr로 작성되어, 정상적인 검사 진단 또는 포맷된 코드의 출력(기본적으로 stdout)과 간섭되지 않도록 합니다. oxfmt에서는 멀티스레드 작업 디버깅을 위해 스레드 이름과 스팬 타이밍 정보가 포함됩니다.

일반적인 사용 사례

처리 중인 모든 파일 목록 보기:

bash
OXC_LOG=debug oxlint
OXC_LOG=debug oxfmt

모듈 해결 문제 디버깅:

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

rust-lldb

디버그 빌드에서 패닉 정보를 얻기 위해 rust-lldb를 사용할 수 있습니다.

디버그 심볼 활성화:

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

바이너리 빌드:

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

바이너리 실행:

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

실행 후, 프로그램을 실행하려면 r 키를 누르세요.

VSCode에서 TypeScript 디버깅

디버깅 가이드에 따르면, TypeScript 저장소에서:

  • .vscode/launch.template.json 파일 이름을 launch.json으로 변경
  • tests/cases/compiler/foo.ts 추가
  • "${fileBasenameNoExtension}"foo.ts로 변경
  • TypeScript 소스 코드 내 어디든 중단점 설정
  • 메뉴에서 "실행 - 디버깅" 선택, 또는 F5 키 입력
  • 디버깅 중에는, 타겟 테스트 파일 전에 tsc가 전역 .d.ts 파일을 평가합니다
  • src/compiler/debug.ts에서 Debug.formatXXX(value)를 사용하여 열거형 값 출력 가능
  • "관찰"(WATCH) 섹션을 사용해 관심 있는 값 확인

VSCode에서 린터 디버깅

npm 프로젝트에 대해 CodeLLDB를 사용하면 린터 디버깅이 간편합니다.

.vscode/launch.json에서 필요에 따라 구성 항목을 변경하세요:

  • cwd: npm 프로젝트의 절대 경로
  • args: 린터에 전달되는 인수
json
{
  "type": "lldb",
  "request": "launch",
  "name": "Oxlint 디버깅",
  "cargo": {
    "env": {
      "RUSTFLAGS": "-g"
    },
    "args": ["build", "--bin=oxlint", "--package=oxlint"],
    "filter": {
      "name": "oxlint",
      "kind": "bin"
    }
  },
  "cwd": "TEST-PROJECT-경로", 
  "args": ["--OXLINT-인수"] 
}

VSCode 디버깅 패널을 열고 Oxlint 디버깅을 선택한 후 디버깅 시작.

디버그 과정은 지정된 cwd로 시작되며, 테스트 프로젝트에서 린터를 실행하고 디버거를 붙이는 것처럼 동작합니다.