ubuntu下VS code如何调试C++代码
最近开始使用vs codel,真的方便,可以和git结合。下面总结一下如何调试程序,
我写了一个实例程序(不重要)
#include <iostream> #include <fstream> #include <string> #include <vector> #include <algorithm> using namespace std; int main(void) { fstream iofile("test.txt"); vector<string> strs(20); int i=0; if(!iofile){ cerr<<"open file failed"<<endl; }else{ while(iofile>>strs[i++]); } for(int j=0;j<i-1;j++) { cout<<strs[j]<<endl; } // cout<<endl; cout<<"after sort"<<endl; cout<<*(strs.begin())<<endl; sort(strs.begin(),strs.begin()+i-1); cout<<"i:"<<i<<" "<<strs[1]<<endl; for(int j=0;j<i;j++) { cout<<strs[j]<<" "; } cout<<endl; return 0; }
这个时候,我们按f5,发现不能运行,它提示需要一个launch.json文件,ok,这是一个启动文件,我们来配置它。
{ // use intellisense to learn about possible attributes. // hover to view descriptions of existing attributes. // for more information, visit: https://go.microsoft.com/fwlink/?linkid=830387 "version": "0.2.0", "configurations": [ { "name": "(gdb) launch", "type": "cppdbg", "request": "launch", "program": "${workspacefolder}/build", "prelaunchtask": "build", "args": [], "stopatentry": false, "cwd": "${workspacefolder}", "environment": [], "externalconsole": true, "mimode": "gdb", "setupcommands": [ { "description": "enable pretty-printing for gdb", "text": "-enable-pretty-printing", "ignorefailures": true } ] } ] }
注意,这里需要修改的部分主要是program那一行,仅需修改为自己编译后产生的文件名,不如g++ -g 1.7.cpp -o build,所以这里我就取了build这个名字。
还有,就是要添加prelaunchtask这一行,名字与下面的task要对应。
这里,它还需要一个task.json文件,配置如下,
{ // see https://go.microsoft.com/fwlink/?linkid=733558 // for the documentation about the tasks.json format "version": "2.0.0", "tasks": [ { "label": "build", "type": "shell", "command": "g++", "args": [ "-g", "${workspacefolder}/chapter01/1.7.cpp", "-o", "build" ] } ] }
大家可以看到,这里只需要将label的值要与上面的prelaunchtask相对应,其他的就是命令行部分,完成这个文件后,我们ctrl+shift+b,这是会执行task。
之后,我们打开main文件,设置断点,f5即可开始调试代码。
关于launch.json:
官方是这样说的:however, for most debugging scenarios, creating a launch configuration file is beneficial because it allows you to configure and save debugging setup details. vs code keeps debugging configuration information in a launch.json file located in a .vscode folder in your workspace (project root folder) or in your user settings or workspace settings.但是,对于大多数调试方案,创建启动配置文件是有益的,因为它允许您配置和保存调试设置详细信息。 vs code将配置信息保存在位于工作区(项目根文件夹)的.vscode文件夹或用户设置或工作区设置中的launch.json文件中。
个人感觉可能是项目比较简单所以看不来它的好处。