欢迎您访问程序员文章站本站旨在为大家提供分享程序员计算机编程知识!
您现在的位置是: 首页

在ubuntu中用vscode编译调试C\C++

程序员文章站 2024-02-29 21:16:40
...

一. 可视化的代码跟踪调试。

方法:
1.可视化前端 Kdbg。

2.可视化前端 Insight。有点older,不推荐
3. 基于跨平台多类型代码编辑器VScode。 强烈推荐。参考网址:

链接一
链接二
链接三

二、在Ubuntu下安装vscode

1.进入ubuntu桌面版系统,点击图片中指向的图标(软件中心)。
在ubuntu中用vscode编译调试C\C++
2.在软件中心,搜索Visual Studio Code

在ubuntu中用vscode编译调试C\C++
3.下载安装启动
在ubuntu中用vscode编译调试C\C++

三、在ubuntu中用vscode编译调试C\C++

1.安装vscode的C\C++插件。

(1)在vscode中安装C++的插件,按ctrl+p调出命令行,在上面输入ext install cpptools,或在也可以只输入ext install然后按空格
在ubuntu中用vscode编译调试C\C++
(2)就是配置调试和编译文件,launch.json和task.json。
首先我们在安装好了插件之后,就可以在vscode打开我们的源码文件了并且调试了,不过要注意vscode要调试的话只能打开包含源码文件的文件夹,不能打开单个文件调试。(我新建了一个main.cpp放在了主目录中)
在ubuntu中用vscode编译调试C\C++
在vscode中打开刚才创建的main.cpp文件
在ubuntu中用vscode编译调试C\C++
在ubuntu中用vscode编译调试C\C++
在vscode中打开刚才创建的main.cpp文件
在ubuntu中用vscode编译调试C\C++
然后就自带生成出来一个.json文件,
在ubuntu中用vscode编译调试C\C++

2.配置launch.json和task.json这两个文件

想要调试源代码文件,我们需要创建或者生成tasks.json和launch.json文件,tasks.json文件帮助我们自动在终端中输入gcc指令,编译输出可运行文件的,而launch.json文件则是启动gdb程序进行调试的。
1.创建文件夹并进入该文件夹内部

mkdir test
cd test

2.编写代码
创建并编写test.c

#include <stdio.h>
void ShowRevertNum(int iNum)
{
 while (iNum > 10)
 {
printf("%d", iNum % 10);
 iNum = iNum / 10;
 }
 printf("%d\n", iNum);
}
int main(void)
{
 int iNum;
 printf("Please input a number :");
 scanf("%d", &iNum);
 printf("After revert : ");
 ShowRevertNum(iNum);
 return 0;
}

3.选择C++(GDB/LLDB)插件之后再根据提示,选择“g++ -生成和调试活动文件”,运行结束后VSCode会自动生成适用于gcc编译的launch.json文件。
在ubuntu中用vscode编译调试C\C++
4.点击工具栏上的Terminal(终端),选择Configure Tasks(配置任务) -> C/C++:gcc build active file,VSCode会自动生成适用于gcc编译的tasks.json文件保存后继续进行编译,需要在第九行后添加语句:

"${fileDirname}/test.c",

在ubuntu中用vscode编译调试C\C++

3.编译调试C++程序

command就是调用的控制台命令;
args就是命令行参数了,-g参数是必须的,否则到时候没有调试信息,vscode会无法设置断点。
配置好后在test.c文件界面,我们就可以先按ctrl+shift+B先编译,再按上方调试工具栏的图标绿色箭头,再点击终端:

在ubuntu中用vscode编译调试C\C++

发现输入为“100”时,原则上应该输出“001”,但是现在输出的是“010”,说明代码出现问题,设置断点开始调试。
(设置点击语句前面来设置断点)
在ubuntu中用vscode编译调试C\C++

此时点击下图箭头所指的图标开始向下调试:
在ubuntu中用vscode编译调试C\C++
调试后发现错误,在当iNum=10时,程序会跳出循环,对此进行修改,将循环条件改为:

while (iNum >= 10)

重新进行调试,并再次输入100。
在ubuntu中用vscode编译调试C\C++

相关标签: Ubuntu