ubuntu里VScode调试C项目

配置一下vscode里面的C/C++调试

主体是跟着菜鸟入门之一:在Ubuntu18.04下利用VS code编写C语言的配置_ubuntu 18.04 vs code 配置c语言-CSDN博客这个来的

有一些不好理解的地方,在这里为自己说明

(1)在创建tasks.json时候,按照他的步骤找到run tasks之后,选择第一个,这时候点击没有反应,右键再点击右侧的齿轮即可添加

(2)launch.json里面的

{
  "version": "0.2.0",
  "configurations": [  
    {
      "name": "C/C++ Runner: Debug Session",
      "type": "cppdbg",
      "request": "launch",
      "args": [],
      "stopAtEntry": false,
      "externalConsole": false,
      "cwd": "/home/gh/Desktop/test/NetassTest",
      "program": "/home/gh/Desktop/test/NetassTest/client.out",
      "MIMode": "gdb",
      "miDebuggerPath": "gdb",
      "setupCommands": [
        {
          "description": "Enable pretty-printing for gdb",
          "text": "-enable-pretty-printing",
          "ignoreFailures": true
        }
      ],
      "preLaunchTask": "C/C++: gcc-10 生成活动文件",
    }
  ]
}

其中的program的路径与cwd的路径和文章所说的一样,需要二者保持一致,这里需要说明的是,在tasks文件里面,关于路径如下

{
	"version": "2.0.0",
	"tasks": [
		{
			"type": "cppbuild",
			"label": "C/C++: gcc-10 生成活动文件",
			"command": "/usr/bin/gcc-10",
			"args": [
				"-fdiagnostics-color=always",
				"-g",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}.out"
			],
			"options": {
				"cwd": "${fileDirname}"
			},
			"problemMatcher": [
				"$gcc"
			],
			"group": "build",
			"detail": "编译器: /usr/bin/gcc-10"
		}
	]
}

可以看出,两个文件中关于路径的不同,此处理由也很简单,因为第一个是绝对路径,而第二个是基于自己所在的路径生成的,也就是说一个绝对一个相对,是不互相矛盾的。

(3)

tasks文件的作用就是相当于g++ -g main.cpp swap.cpp -o a.out,并且所有的都更改完毕以后是不用特地build的,只需要执行相关命令,执行构建任务就可以了,这里就是再次ctrl+shift+P,而后执行tasks: run task

(4)关于路径的说明

"${fileDirname}/${fileBasenameNoExtension}.out"

这里面

  • ${fileDirname}:这个变量表示当前打开文件的目录路径。如果正在编辑一个名为example.c的文件,该文件位于/home/user/projects/myapp目录下,那么${fileDirname}的值就是/home/user/projects/myapp

  • ${fileBasenameNoExtension}:这个变量表示当前打开文件的基本名称(即文件名,但不包括其扩展名)。继续上面的例子,如果当前打开的文件是example.c,那么${fileBasenameNoExtension}的值就是example

将这两个变量组合起来,并添加一个.out扩展名,

"${fileDirname}/${fileBasenameNoExtension}.out"

就构成了一个完整的路径和文件名,用于指定编译输出的可执行文件的位置和名称。继续上面的例子,输出文件的完整路径和名称将会是/home/user/projects/myapp/example.out

在tasks里面,

"args": [
				"-fdiagnostics-color=always",
				"-g",
				"${file}",
				"-o",
				"${fileDirname}/${fileBasenameNoExtension}.out"

这里面的${file}就是你自己写的代码文件,比如“client.c”,这里没写名称的原因和上文一样

Ubuntu上使用VSCode进行调试,你可以按照以下步骤进行操作: 1. 首先,你需要在Ubuntu上安装VSCode。你可以从VSCode官网下载最新版本的deb包\[2\],然后在命令行中使用以下命令安装deb包: ``` sudo dpkg -i code_1.50.1-1602600906_amd64.deb ``` 2. 安装VSCode的C/C++插件。在VSCode中,点击左侧的扩展图标,搜索并安装C/C++插件\[1\]。 3. 配置launch.json和task.json文件。在VSCode中,点击左侧的调试图标,然后点击齿轮图标,选择"C++ (GDB/LLDB)"作为调试环境。接下来,VSCode会自动生成一个launch.json文件,你可以根据需要进行配置。 4. 编译调试C++程序。在VSCode中,打开你的C++项目文件夹,然后点击左侧的调试图标,选择"启动调试"。VSCode会自动编译并运行你的C++程序,并在调试控制台中显示输出结果。 这样,你就可以在Ubuntu上使用VSCode进行C++程序的调试了。如果你需要远程编辑和调试Linux代码,你可以参考使用Visual Studio Code远程编辑和调试Linux代码的教程\[3\]。 #### 引用[.reference_title] - *1* *2* [Ubuntu系统下的vscode调试](https://blog.csdn.net/weixin_51087836/article/details/109519770)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] - *3* [ubuntu上安装vscode,并远程开发与远程调试服务器代码](https://blog.csdn.net/u013171226/article/details/107680346)[target="_blank" data-report-click={"spm":"1018.2226.3001.9630","extra":{"utm_source":"vip_chatgpt_common_search_pc_result","utm_medium":"distribute.pc_search_result.none-task-cask-2~all~insert_cask~default-1-null.142^v91^insertT0,239^v3^insert_chatgpt"}} ] [.reference_item] [ .reference_list ]
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值