如何关联VSCode中Deno源码断点与PowerShell启动的进程?
关联VSCode断点与独立PowerShell启动的Deno进程调试步骤
编译Debug版本的Deno
在Deno仓库根目录执行:cargo build
编译产物位于target/debug/deno.exe(Windows环境)配置VSCode调试环境
- 安装VSCode的CodeLLDB插件
- 在项目根目录创建
.vscode/launch.json,填入以下配置:
{ "version": "0.2.0", "configurations": [ { "type": "lldb", "request": "attach", "name": "Attach to Deno Process", "pid": "${command:pickProcess}", "sourceMap": { "${workspaceFolder}": "${workspaceFolder}" } } ] }
设置断点
在VSCode中打开cli/args/flags.rs,在处理completions命令的目标代码行设置断点。启动Deno进程并附加调试器
由于deno completions执行速度快,直接启动可能来不及附加调试器,可选择以下两种方法确保断点命中:
方法一:临时添加延迟代码
在completions命令处理逻辑的开头添加一行Rust代码:std::thread::sleep(std::time::Duration::from_secs(5));重新执行
cargo build编译后,在PowerShell中运行目标命令:.\target\debug\deno completions powershell >> $profile立刻切换回VSCode按下F5启动调试,在进程选择列表中选中
deno.exe,等待5秒后断点即可命中。调试完成后删除添加的延迟代码即可。方法二:快速启动并附加
在PowerShell中执行以下命令启动进程:Start-Process -FilePath .\target\debug\deno.exe -ArgumentList "completions powershell" -NoNewWindow -PassThru命令执行后立刻切换到VSCode启动调试,选中对应的
deno.exe进程,只要操作及时,就能在命令执行完成前附加成功并触发断点。
内容的提问来源于stack exchange,提问作者The-Stanislav
相关产品推荐
相关产品推荐

