在linux系统下使用vscode对c++程序进行调试没有在windows下使用visual studio调试那么方便,需要我们自己编写json调试信息文件,下面对其进行详细讲解。
-
点击vscode左侧菜单栏的debug图标,点击
创建launch.json文件
。
-
弹出的选择环境选项中,选择
C++(GDB/LLDB)
。
-
再次弹出的选项中选择第一个。
-
可能会弹出一个警告窗口,直接点击中止即可。
-
然后就会自动打开生成的
launch.json
文件。其中有两个重要的参数,一个是第11行的program
,另一个是第25行的preLaunchTask
。
-
其中,
program
项需要填入我们需要调试的可执行文件的绝对路径。我这里填入的是${workspaceFolder}/build/my_cmake_exe
。其中,${workspaceFolder}
指工程的最外面一层目录,即我这里的7
文件夹。然后,我的可执行文件是my_cmake_exe
,它位于7
文件夹下的build
文件夹下,故program
路径为${workspaceFolder}/build/my_cmake_exe
。
-
另一个关键参数
preLaunchTask
是全自动调试用的,可以先不用上,将其注释掉。至此,launch.json
文件就已经修改完成了,将其保存。
-
开始调试之前,先展示一下我的cmakelist文件里的内容。为了更好地进行调试,记得不要在编译时候使用O2加速。
-
然后,打开终端,重新make工程。
-
在需要的地方加断点,然后按
F5
运行程序,即可命中断点。调试信息会展示在左侧,运行方式可以通过点击右上角的图标进行,也可以按快捷键进行,与windows上的调试一样。F5
运行到下一个断点,F10
单步运行,F11
可以跳入函数。
-
但是这样调试会有一个问题,每次修改代码后都要重新make一下工程。解决方法就是使用上面提到的另一个重要参数
preLaunchTask
。详细教程请点击ubuntu下使用vscode对c++程序进行自动化调试(设置task.json)。
这里mark两个不同解决方案的博客,如果上面配置出错的话,可以参考:
https://blog.csdn.net/Burannnn/article/details/124156844
https://blog.csdn.net/fangshuo_light/article/details/123635576