rust-vim 整合基于vimspector的debug调试环境
前言
前面配置好rust
开发环境后,还需要一个调试功能就能用了。
不清楚的可以回看我的rust-vim安装记录
调试器,找了几款,最后还是觉得还是使用vimspector
这个用的习惯,捣鼓两个整合了一下基于vimspector
的调试环境,快捷键不用重新再配置。
效果图:
这几天换了mac M2,把功能都迁移过来,完可用,这图就是M2上载图的。
另外补全相关的配置,需要coc的一些额外配置。
vim CocConfig参数设置说明
流程
- 安装vimspector插件:
puremourning/vimspector
- 添加配置文件:
lldb-vscode.json
.vimspector.json
安装vimspector插件
添加插件,然后执行PlugInstall
,路径:
~/.config/nvim/init.vim
--enable-rust
表示要启用的语言支持,可以从官网查看支持的语言。
1 | Plug 'puremourning/vimspector', {'do': './install_gadget.py --enable-rust'} |
在vim中执行:
1 | :PlugInstall |
添加配置到init.vim
中
~/.config/nvim/init.vim
1 | "============================================================================== |
其它建议的配置项:
1 | " mnemonic 'di' = 'debug inspect' (pick your own, if you prefer!) |
您可能还希望添加用于向上/向下导航堆栈、切换断点窗口和显示反汇编的映射,例如:
1 | nmap <LocalLeader><F11> <Plug>VimspectorUpFrame |
vimspector 配置
需要添加两个配置文件:
lldb-vscode.json
.vimspector.json
1.添加 lldb-vscode.json
lldb-vscode.json
文件所以在这个路径,如果没有.gadgets.d
需要创建一个,我的 路径:~/.vim/plugged/vimspector/gadgets/macos/.gadgets.d/lldb-vscode.json
这里说明一个,这个路径是.vim
,我用的是nvim
没错,只是我把插件路径都统一到了.vim
这个目录下了。
最开还没有使用nvim
,用的是vim
。
1 | { |
2.添加 .vimspector 文件
这个文件添加到子项目下,比如下面是我的项目结构,
添加到 vector_test
这个项目下,偿试在rust-learning
上添加,子项无法启动vimspector
。
1 | rust-learning/ |
调试操作
对应HUMAN
模式的快捷键:
按键 | 映射 | 功能 |
---|---|---|
F5 |
<Plug>VimspectorContinue |
开始调试、下一个断点 |
F3 |
<Plug>VimspectorStop |
停止调试 |
F4 |
<Plug>VimspectorRestart |
使用相同的配置,重启debug |
F6 |
<Plug>VimspectorPause |
暂停调试对象 |
F9 |
<Plug>VimspectorToggleBreakpoint |
添加、取消断点 |
<leader>F9 |
<Plug>VimspectorToggleConditionalBreakpoint |
添加条件断点或日志点 |
F8 |
<Plug>VimspectorAddFunctionBreakpoint |
为光标下的表达式添加函数断点 |
<leader>F8 |
<Plug>VimspectorRunToCursor |
运行到光标处 |
F10 |
<Plug>VimspectorStepOver |
单步跳过 |
F11 |
<Plug>VimspectorStepInto |
单步进入 |
F12 |
<Plug>VimspectorStepOut |
单步跳出 |
如果跑完一圈断点要重开,就按F4
,其它的跟常用IDE差不多。
还有就是各个窗口,也和IDE差不多的功能,线程栈可以跳对应的线程和执行的代码位置。
变量监视窗口支持表达式,到窗口按i
,就可以输入表达式如:i==50
。
差不多就能用了,有问题留言。