デバッグ
OXC_LOG 環境変数
OXC_LOG 環境変数は、oxlint および oxfmt における実行時トレースを有効化します。設定されていない場合、ログ出力は完全に無効化され、コストゼロの動作が保証されます。
基本的な使い方
bash
# oxlint 用のデバッグログを有効化
OXC_LOG=debug oxlint
# oxfmt 用のデバッグログを有効化
OXC_LOG=debug oxfmt
# インポートプラグインを使用する際のリゾルバートレースを有効化
OXC_LOG=oxc_resolver oxlint --import-plugin
# フォーマッターのトレースを有効化
OXC_LOG=oxc_formatter oxfmtフィルタ構文
OXC_LOG は tracing-subscriber のフィルタ構文を使用しています:
| パターン | 説明 |
|---|---|
debug | すべてのモジュールでデバッグレベルを有効化 |
trace | すべてのモジュールでトレースレベルを有効化 |
oxc_resolver | oxc_resolver モジュールからのすべてのログを有効化 |
oxc_resolver=debug | oxc_resolver モジュールのデバッグレベルを有効化 |
oxc_resolver=trace | oxc_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-pluginrust-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)は列挙型の値を出力するために使用できます- 「ウォッチ」セクションを使って興味のある値を「確認」する
VSCode での Linter のデバッグ
npm プロジェクトの外部にある Linter をデバッグするには、CodeLLDB を利用するのが簡単です。
.vscode/launch.json で、必要に応じて設定項目を変更してください:
cwd: npm プロジェクトへの絶対パスargs: 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"]
}VS Code のデバッグパネルを開き、Debug Oxlint を選択してからデバッグを開始してください。
このデバッグプロセスは、指定された cwd で開始され、テストプロジェクト内で Linter を実行し、その中へデバッガーをアタッチするのと同じ状態になります。
