go install github.com/go-delve/delve/cmd/dlv@latest
pnpm install && pnpm -w build:cli:dev
构建 @rspack/cli
和 napi bindingRun and Debug
栏中, 选择 Debug Rspack
开始调试 @rspack/cli
的启动过程。 该任务可以在 .vscode/launch.json
中配置,会同时启动 Node 和 Rust 的调试器。其他工具集成的一般是 Rspack 的 release 版本,其中并不包含调试信息,这时候需要使用对应的含有debug 的版本进行override替换,方可调试。
只需在指定的 Rust 代码处设置断点后启动 Debug Rspack
即可进行调试。
启动 Debug Rspack
时,选择 --inspect
或 --inspect-brk
选项,然后启动 Attach JavaScript
并选择相应进程的 PID 即可。
当 Rspack 被集成到其他框架或工具(如 Nx)中时,可能难以独立使用 Launch 模式启动 Rspack。此时,可以通过 attach 模式调试代码。启动 Attach Rust
并选择 Rspack 所属进程的 PID 即可,启动 Attach JavaScript
即可调试 JavaScript。
当使用 Attach Rust
将调试器 attach 到 Rspack 所属进程后,点击 Debugger 的 Pause 按钮即可在死锁现场设置断点。
rust-lldb
可用于从 debug 版本中获取 panic 信息
启动后,按住 r
来执行程序。
例如,examples/arco-pro
运行崩溃了并且没有任何信息在这个修复 之前:
使用 rust-lldb
按下 r
然后会打印: