在windows中用vscode单步调试rust程序的时候,发现无论是按下stop键,还是运行完程序,调试器codelldb.exe一直霸占着主程序不退出,如果此时对代码进行修改,后续就没法再编译调试了。
目前我也不知道要怎么处理这个事,只好通过暴力指令taskkill关闭codelldb实现。
具体怎么做呢?
比如,你有一个程序 main.rs,在第一次单步断点调试时,发现是没有问题的,可以在断点处停留。
然后,你退出调试,或者运行完程序,再修改一下程序,再编译,发现就没法link了,原因就是你前面的调试开启的codelldb.exe把你的主程序给占着了。要继续link,你得把codelldb.exe关闭才行。
当然你可以使用taskmgr.exe来关闭你的程序,如下图所示,
不过,这需要保持taskmgr.exe一直开着,我更习惯在vscode中直接操作,只需要用下面这个命令即可,
taskkill /im codelldb.exe /f
为了完整性,我简单介绍一下过程,
首先,你可以使用
tasklist | findstr lldb
codelldb.exe 22644 Console 1 56,984 K
codelldb.exe 17420 Console 1 55,504 K
找到这个codelldb.exe的程序,其中第一个数字是PID,然后,你可以使用
taskkill /im codelldb.exe /f
或者
taskkill /pid 22644 /f
taskkill /pid 17420 /f
来强制关闭codelldb.exe。
具体操作的视频如下所示,
Rust - stop program in vscode
本文结束。