使用nvim-dap如何在同一会话中附加多个进程进行调试
nvim-dap原生支持并行多调试会话,无需额外依赖即可实现你要的同时附加多进程的需求,两种常见实现方式:
- 手动分步操作
每次执行require'dap'.continue()选择一个目标配置完成附加后,再次执行该命令即可启动新的调试会话,原有调试会话会保持运行状态,不会被覆盖。你可以重复三次操作分别附加三个Node进程,再额外配置Chrome调试适配器后同样操作附加Chrome进程即可。
多会话运行时可通过require'dap'.list_sessions()唤起会话列表切换不同调试目标,查看对应断点、堆栈和控制台输出。 - 一键自动附加所有预设配置
直接封装自定义Lua函数批量调用dap的run接口即可实现类似VS Code复合启动的效果,示例代码如下:
如果需要同时附加Chrome进程,只需要先配置好pwa-chrome类型的调试适配器和对应的attach配置,把Chrome的配置项也加入上面的target_configs列表即可。-- 批量附加所有预设的Node调试配置 local dap = require('dap') function _G.dap_attach_all_node() -- 也可以自己硬编码指定要启动的配置列表,不需要遍历全部配置 local target_configs = { dap.configurations.javascript[1], dap.configurations.javascript[2], dap.configurations.javascript[3], -- 加Chrome配置的话在这里加对应的配置项即可 } for _, conf in ipairs(target_configs) do dap.run(conf) end end -- 绑定自定义快捷键触发 vim.keymap.set('n', '<leader>dA', _G.dap_attach_all_node, { desc = 'DAP attach all preset configurations' })
小提示:你可以搭配nvim-dap-ui的多会话视图使用,各个调试会话的上下文信息会分开展示,更方便排查问题。
内容的提问来源于stack exchange,提问作者Brody Jackson
相关产品推荐
相关产品推荐

