Vscode对C/C++可视化的代码跟踪调试

文章目录

  • 可视化的代码跟踪调试
    • 1、安装Visual Studio Code
    • 2、用vscode编译调试C\C++
  • 总结

可视化的代码跟踪调试

ubantu18.04的环境下,在命令行工具gdb调试基础上,利用可视化调试前端软件Visual Studio Code,(后端依然依赖gcc、gdb)进行程序代码的跟踪查错,提高工作效率。

1、安装Visual Studio Code

在这里插入图片描述
进入应用商店之后,搜索Visual Studio Code:在这里插入图片描述
之后点击Visual Studio Code图标开始下载:

在这里插入图片描述
等一会儿,安装成功如下:
在这里插入图片描述
点击桌面左上角的“活动”(我用的是Ubantu18.04),搜索Visual Studio Code:在这里插入图片描述
点击VScode图标,将其拖到桌面收藏夹位置:在这里插入图片描述

2、用vscode编译调试C\C++

点击vscode图标进入:
在这里插入图片描述
ctrl+p调出命令行,输入ext install cpptools回车后:
在这里插入图片描述
在这里插入图片描述
点击第一个C/C++ 1.0.1 install进行安装,完成后退出vscode,再次重启进入:
在这里插入图片描述
修改调试模板文件对源代码进行调试:
注意:如果源代码只有一个,使用默认的模板文件就可进行调试和运行;工程中的源文件众多,不可以直接调试,此时需要创建或者生成tasks.json和launch.json文件(tasks.json文件用于自动在终端中输入gcc指令,编译输出可运行文件,launch.json文件用于启动gdb程序进行调试的。
具体操作如下:
(1)在vscode中点击file之后,选择open folder打开事先准备好的GDB文件夹,其中只有一个test.c文件(vscode调试只能打开包含源码文件的文件夹,不能打开单个文件调试),点击右上角的“ok”:
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);
}

在这里插入图片描述

(2)点击界面右边图标第四个,页面顶部出现一个选择面板,选择C++(GDB/LLDB)插件:在这里插入图片描述

(3)之后再根据提示,选择“g++ -生成和调试活动文件”,运行结束后自动生成launch.json文件;
在第九行末尾添加"${fileDirname}/linktable.c",,如下:![在这里插入图片描述](https://img-blog.csdnimg.cn/20201106111435112.png?x-oss-process=image/watermark,type_ZmFuZ3poZW5naGVpdGk,shadow_10,text_aHR0cHM6Ly9ibG9nLmNzZG4ubmV0L3FxXzQ0NjQ0NzQw,size_16,color_FFFFFF,t_70#pic_center)

在这里插入图片描述

点击工具栏上的Terminal,选择Configure Tasks -> C/C++:gcc build active file,VSCode会自动生成适用于gcc编译的tasks.json文件保存后继续进行编译,需要在第九行后添加语句:

"${fileDirname}/test.c",

在这里插入图片描述

command就是调用的控制台命令;
args就是命令行参数了,-g参数是必须的,否则到时候没有调试信息,vscode会无法设置断点。
配置好后在test.c文件界面,我们就可以先按ctrl+shift+B先编译,再按上方调试工具栏的图标绿色箭头:
在这里插入图片描述
在这里插入图片描述
发现输入为“100”时,原则上应该输出“001”,但是现在输出的是“010”,说明代码出现问题,设置断点开始调试,将调试的断点设在第4行的while循环处,点击上方调试工具栏的图标绿色箭头,如下图所示:

在这里插入图片描述
此时点击下图箭头所指的图标开始向下调试:在这里插入图片描述

调试后发现,当iNum=10时,程序会跳出循环,因此此时修改循环条件为

while (iNum > 9)

再次点击上方调试工具栏的图标绿色箭头,再次重复上述步骤进行调试:

在这里插入图片描述
程序编译成功,输入“100,显示倒序输出”001“,没有出错。

参考来源:
https://www.cnblogs.com/lwp-king666/p/10513382.html
https://blog.csdn.net/q932104843/article/details/51924900
https://www.cnblogs.com/maxiaowei0216/p/12616087.html

总结

本次学习主要是在命令行工具gdb调试基础上,熟悉使用可视化调试前端软件Visual Studio Code进行程序代码的跟踪查错,提高工作效率,实现了可视化的代码跟踪调试。

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.rhkb.cn/news/26300.html

如若内容造成侵权/违法违规/事实不符,请联系长河编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

VS Code真机测试步骤

VS Code真机测试步骤 前提&#xff1a;你的电脑跟你的手机是在同一个网络环境下。电脑连手机热点&#xff1b; 1&#xff0e; 在扩展里搜索live server&#xff0c;下载安装&#xff1b; 2&#xff0e; 打开cmd 命令窗口&#xff08;快捷键是winr&#xff09;&#xff1b; 输入…

VS Code调试C代码

1、前言 首先说明的是vscode是代码编辑器&#xff0c;并不是编译器&#xff0c;它本身并不能编译C语言。 在这里我们使用的是MinGW-w64作为C语言的编译器。MinGW-w64的前身是MinGW的全称是&#xff1a;Minimalist GNU on Windows。它实际上是将经典的开源 C语言 编译器 GCC 移…

VScode的代码截图插件CodeSnap

CodeSnap : 在 VS Code 中为您的代码截取漂亮的屏幕截图&#xff01; 插件名&#xff1a;CodeSnap官方地址&#xff1a;CodeSnap - Visual Studio Marketplace特征&#xff1a; 快速保存代码的屏幕截图将屏幕截图复制到剪贴板显示行号许多其他配置选项用法&#xff1a;选中需要…

Vscode——调试数据可视化插件debug-visualizer

debug-visualizer是一款极其优秀的调试数据可视化插件 安装方法 第一步&#xff1a;vscode插件库安装 debug-visualizer第二步&#xff1a;环境内输入 pip install vscodedebugvisualizer 使用方法 启动调试Ctrl Shift P 打开命令面板&#xff0c;输入 Debug Visualizer: …

VS Code 最好的 Git 可视化插件

&#x1f447;&#x1f447;关注后回复 “进群” &#xff0c;拉你进程序员交流群&#x1f447;&#x1f447; 作者丨小集 来源丨小集&#xff08;ID&#xff1a;zsxjtip&#xff09; Visual Studio Code 有几组 git 命令来为您的代码存储库执行和执行多项任务。但是&#xff0…

如何使用VScode软件测试接口

我们知道&#xff0c;Visual Studio Code&#xff08;简称VScode&#xff09;软件一般用于编写前端代码&#xff0c;但其实&#xff0c;它也可以很方便的用于接口测试&#xff0c;达到和postMan一样的效果。 怎么实现呢&#xff1f; 步骤如下&#xff1a; 1.安装 REST Clien…

视频特效软件有哪些?这些软件值得一试

大家平常在制作视频时&#xff0c;经常需要将多个视频拼接&#xff0c;但是如果两个视频中间没有什么转场过渡的话&#xff0c;会显得很单调。我们可以增加一些转场、音乐、特效&#xff0c;这样整支视频看起来效果会好很多。讲到视频特效&#xff0c;可能有些小伙伴会觉得它很…

python :超级大乐透

体育彩票 超级大乐透 dlt.py # codingutf-8 import randomdef xuanhao(total, count):element [x1 for x in range(total)]result []for i in range(count):res element[random.randint(0, len(element)-1)]element.remove(res)result.append(res)return result# 超级大乐透…

发卡网源码

简介&#xff1a;发卡网带代理功能&#xff0c;安装简单。 网盘地址&#xff1a;https://pan.baidu.com/s/1E3AtqCmBZPjXgaiUEXrM6Q 提取码:rsu4 展示&#xff1a;

最新鲸发卡企业发卡网系统源码+免授权

正文: 心心念念的鲸发卡来啦&#xff0c;企业发卡源码&#xff0c;鲸发卡。目前全网最稳定的发卡系统之一。 在运营版本&#xff0c;既然做就要把他当作一项事业来做。 程序开源无加密&#xff0c;完整运营级程序&#xff0c;非市面上垃圾程序BUG一堆。 此程序经过市场验证…

功能强大的发卡网源码+支付接口超多

正文: 有二十三个支付接口&#xff0c;三套前台模板。 由于还得更新其他源码&#xff0c;就填充了一个商品&#xff0c;UI看起来不错&#xff0c;脑补了下&#xff0c; 填充完商品后&#xff0c;应该会更好看。 程序: wwbwf.lanzouf.com/iigbh09ygu6b 图片:

【.NET AI Books 前言】Azure OpenAI Service 入门

本书是为 .NET 开发者而写的&#xff0c;让 .NET 开发者能快速掌握 Azure OpenAI Service 的使用技巧。 ChatGPT 的到来意味着我们已经置身于 AI 引起的全新变革中&#xff0c;作为开发者你可能将面临几种改变&#xff1a; GPT 模型到来后&#xff0c;如何去架构好企业解决方案…

github基本操作

目标 把本地的一个项目放到github上&#xff0c;方便浏览和管理 步骤 要将本地代码推送到 GitHub 上&#xff0c;您需要执行以下步骤&#xff1a; 1. 在 GitHub 上创建一个新的仓库。 2. 在本地计算机上使用 Git 命令行工具初始化一个新的 Git 仓库。 3. 将本地代码添加到 …

如何构造个人 AI 策略:从 AI 绘画的演进与 ChatGPT 现状出发?

持续关注 AI 相关探索&#xff1a;https://github.com/phodal/ai-research PS&#xff1a;就本文的结论而言&#xff0c;我相信你已经或多或少的有所体会了。也因此&#xff0c;本文更多的是展现一个思考的过程&#xff0c;而不是一个纯粹的结论。 AIGC 是什么&#xff1f;它是…

如何利用CPU Cache写出高性能代码,看这些图就够了!

世界就像个巨大的马戏团&#xff0c;它让你兴奋&#xff0c;却让我惶恐&#xff0c;因为我知道散场永远是——有限温存&#xff0c;无限辛酸。——卓别林 我们平时编写的代码最后都会交给CPU来执行&#xff0c;如何能巧妙利用CPU写出性能比较高的代码呢&#xff1f;看完这篇文章…

对视频剪辑应用灰度图像变换+Moviepy生成灰度视频处理遇到几个有意思的问题

一、引言 最近在学习图像处理的《直方图处理》&#xff0c;对直方图均衡处理效果感觉非常有用。 以前学习Moviepy音视频剪辑时&#xff0c;用的卓别林的一个黑白视频片段&#xff0c;感觉视频的噪点比较多&#xff0c;画面也整体偏暗&#xff0c;不禁想看看如果对其进行直方图…

大厂正在「去大厂化」

大厂逐渐不再是「大厂」。 撰文 | 佘宗明 大厂还值得去吗&#xff1f; 这成了摆在很多年轻人面前的问题。 搁几年前&#xff0c;这都不能称之为问题。 扁平化管理、快速上升空间、弹性工作制……比JK制服还诱惑。「财务自由」的召唤&#xff0c;更是胜却人间无数情怀。 那现在呢…

无心剑中译伊玛·拉扎罗斯《新巨人·自由女神》

文章目录 无心剑中译伊玛拉扎罗斯《新巨人自由女神》译友们中译伊玛拉扎罗斯《新巨人自由女神》1. 岩子版2. MNES版3. 天河版4. 铁冰版5. 好好做虾版6. 愚冠版卓别林十大经典语录卓别林最伟大的演讲《为自由而战斗》无心剑中译迈克尔杰克逊《自由无拘束》《被讨厌的勇气》- 什么…

当我真正开始爱自己——查理·卓别林

As I began to love myself I found that anguish and emotional sufferingare only warning signs that I was living against my own truth.Today, I know, this is “AUTHENTICITY”. As I began to love myself I understood how much it can offend somebodyAs I try to f…

快速做出原型

给定五六个维度约束下对比两个软件的表现&#xff0c;要用数据说话。这五六个维度&#xff0c;不限于丢包率&#xff0c;固有延时&#xff0c;抖动等。 若两个维度&#xff0c;一张表格即可展现&#xff0c;若四个维度&#xff0c;一个四维立方体可以展示&#xff0c;二维单元…