信创之国产浪潮电脑+统信UOS Linux操作系统体验10:visual studio code中调试C++程序

news2024/11/27 1:18:55
☞ ░ 前往老猿Python博客 ░ https://blog.csdn.net/LaoYuanPython

一、引言

老猿在CSDN的《信创之国产浪潮电脑+统信UOS操作系统体验2:安装visual studio code和cmake搭建C++开发环镜》介绍了在国产浪潮电脑+统信UOS操作系统中安装visual studio code和cmake搭建C++开发环镜的过程及案例.

同时在CSDN的《信创之国产浪潮电脑+统信UOS操作系统体验9:使用vscode构建的配置任务编译C++程序》介绍了通过vscode构建配置任务并手工调整配置文件后,生成用于编译多个文件的C++项目的生成任务过程及配置解释。

但上述过程仅限于编译,无法执行调试,本文以案例介绍通过菜单在vscode中执行编译和调试的方法。

二、安装gdb调试器

vscode本身并不能支持调试C++程序,为了调试程序,需要先在统信UOS操作系统上安装gdb调试器,然后在vscode中进行调试相关配置。

在统信UOS操作系统上安装gdb调试器使用如下指令:

sudo apt-get install gdb

安装成功后在操作终端内就可以直接执行gdb命令,gdb安装的路径为:/usr/bin,在统信操作系统中还有个:/bin 的路径,这是/usr/bin目录的一个软连接,因此gdb的路径即可以是/usr/bin/gdb,也可以是/bin/gdb。

三、配置并执行编译任务

本次使用的测试代码及编译任务的配置与老猿在CSDN的《信创之国产浪潮电脑+统信UOS操作系统体验9:使用vscode构建的配置任务编译C++程序》介绍的一样。

但要注意的是要生成调试程序,g++的编译参数要有“-g”参数,具体配置的task.json文件内容如下:

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

关于tasks的配置请参考老猿在CSDN的《信创之国产浪潮电脑+统信UOS操作系统体验8:Visual Studio Code中的任务文件tasks.json和任务配置要素介绍》的介绍。

配置编译任务后就可以执行编译了,在vscode选择:终端->运行生成任务
在这里插入图片描述

执行成功:
在这里插入图片描述

四、执行调试任务

此时在菜单中选择:运行->启动调试,就可以执行调试任务了:
在这里插入图片描述
可以在代码右边单击鼠标右键设置断点,在右上部位点击几个图标执行:继续往下执行(F5)、逐过程(F10)、单步调试(F11)等调试动作,也可以通过左边的窗口观看变量数据并设置监视的数据。

五、定制设置调试任务

上面通过编译后直接执行调试即可对程序进行调试,但对于一些特定场景,上述这种操作无法满足调试要求,需要单独配置配置launch.json的调试配置文件。

launch.json文件是用于配置VS Code在调试程序时的启动方式和参数的文件。通过编辑launch.json文件,可以指定要调试的程序、调试器的类型、启动参数等信息,以便在按下F5键时启动调试会话。

在VSCode中调试C++程序时,必须配置launch.json的情况有以下几种:

  1. 需要自定义调试配置:例如指定程序的运行参数、环境变量等,如下面这种配置:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug with custom arguments",
      "type": "cppdbg",
      "request": "launch",
      "program": "${workspaceFolder}/main.cpp",
      "args": ["arg1", "arg2"],
      "environment": [
        {
          "name": "LD_LIBRARY_PATH",
          "value": "/usr/local/opencv430/lib:/usr/local/opencv430/lib"
        }
      ]
    }
  ]
}
  1. 需要使用不同的调试器:默认情况下,vscode使用的是C/C++ extension提供的调试器,例如lldb或gdb。但是,如果要使用其他调试器,例如CodeLLDB,就需要配置launch.json来指定使用的调试器
  2. 需要配置远程调试:如果需要在远程机器上调试C++程序,就需要配置launch.json来指定远程机器的连接信息,其配置形式如下所示:
{
  "version": "0.2.0",
  "configurations": [
    {
      "name": "Debug on remote machine",
      "type": "cppdbg",
      "request": "launch",
      "program": "/path/to/remote/main.cpp",
      "miDebuggerServerAddress": "remote-machine-ip:port"
    }
  ]
}

关于launch.json的配置在此就不展开进一步介绍了。

小结

本文简单介绍了在vscode中调试C++程序的基本步骤,要调试程序时,首先要确保使用g++编译时带“-g”参数,然后进入vscode运行菜单按F5启动调试,如果程序带有参数等场景,还要配置launch.json调试配置文件。

写博不易,敬请支持

如果阅读本文于您有所获,敬请点赞、评论、收藏,谢谢大家的支持!

更多关于统信操作系统及vscode的介绍的内容请参考专栏《国产信创之光》的其他文章。

关于老猿的付费专栏

  1. 付费专栏《https://blog.csdn.net/laoyuanpython/category_9607725.html 使用PyQt开发图形界面Python应用》专门介绍基于Python的PyQt图形界面开发基础教程,对应文章目录为《 https://blog.csdn.net/LaoYuanPython/article/details/107580932 使用PyQt开发图形界面Python应用专栏目录》;
  2. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10232926.html moviepy音视频开发专栏 )详细介绍moviepy音视频剪辑合成处理的类相关方法及使用相关方法进行相关剪辑合成场景的处理,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/107574583 moviepy音视频开发专栏文章目录》;
  3. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10581071.html OpenCV-Python初学者疑难问题集》为《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的伴生专栏,是笔者对OpenCV-Python图形图像处理学习中遇到的一些问题个人感悟的整合,相关资料基本上都是老猿反复研究的成果,有助于OpenCV-Python初学者比较深入地理解OpenCV,对应文章目录为《https://blog.csdn.net/LaoYuanPython/article/details/109713407 OpenCV-Python初学者疑难问题集专栏目录 》
  4. 付费专栏《https://blog.csdn.net/laoyuanpython/category_10762553.html Python爬虫入门 》站在一个互联网前端开发小白的角度介绍爬虫开发应知应会内容,包括爬虫入门的基础知识,以及爬取CSDN文章信息、博主信息、给文章点赞、评论等实战内容。

前两个专栏都适合有一定Python基础但无相关知识的小白读者学习,第三个专栏请大家结合《https://blog.csdn.net/laoyuanpython/category_9979286.html OpenCV-Python图形图像处理 》的学习使用。

对于缺乏Python基础的同仁,可以通过老猿的免费专栏《https://blog.csdn.net/laoyuanpython/category_9831699.html 专栏:Python基础教程目录)从零开始学习Python。

如果有兴趣也愿意支持老猿的读者,欢迎购买付费专栏。

老猿Python,跟老猿学Python!

☞ ░ 前往老猿Python博文目录 https://blog.csdn.net/LaoYuanPython ░

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

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈,一经查实,立即删除!

相关文章

2.3物理层下面的传输媒体

目录 2.3物理层下面的传输媒体2.3.1导引型传输媒体1.双绞线2.同轴电缆3.光纤 2.3.2非导引型传输媒体无线电微波通信 2.3物理层下面的传输媒体 传输媒体是数据传输系统中在发送器和接收器之间的物理通路 两大类: 导引型传输媒体:电磁波被导引沿着固体媒体…

linux下docker搭建Prometheus +SNMP Exporter +Grafana进行核心路由器交换机监控

一、安装 Docker 和 Docker Compose https://docs.docker.com/get-docker/ # 安装 Docker sudo apt-get update sudo apt-get install -y docker.io# 安装 Docker Compose sudo apt-get install -y docker-compose二、创建配置文件及测试平台是否正常 1、选个文件夹作为自建…

jenkins+pytest+allure

jenkinspytestallure allure下载地址 Releases allure-framework/allure2 GitHub allure环境变量配置 allure --version 查看版本(确定是否配置完成) python安装allure插件 pip install allure-pytest pytest的运行指令 pytest -sv test_demo.py 开发完毕后将代码上传到…

【Unity自制手册】基于Unity中物体移动相关方法和API集锦(动图详解)

👨‍💻个人主页:元宇宙-秩沅 👨‍💻 hallo 欢迎 点赞👍 收藏⭐ 留言📝 加关注✅! 👨‍💻 本文由 秩沅 原创 👨‍💻 收录于专栏:uni…

关于python解析mf4中二维信号数据的注意事项

python解析mf4中的信号数据一般用np.ndarray存储,但是mf4中的一个信号有时不一定是一维数据,有时会是一个二维的,没错,就是一个信号数据就是二维的,这时候,np数组的每个元素也是一个数组,这个时…

Docker support for NVIDIA GPU Accelerated Computing on WSL 2

Docker support for NVIDIA GPU Accelerated Computing on WSL 2 0. 背景1. 安装 Docker Desktop2. 配置 Docker Desktop3. WLS Ubuntu 配置4. 安装 Docker-ce5. 安装 NVIDIA Container Toolkit6. 配置 Docker7. 运行一个 Sample Workload 0. 背景 今天尝试一下 NVIDIA GPU 在…

服装店收银系统不只是收银 还需要线上商城和线上批发

一个综合性的服装店收银系统可以结合线上商城和线上批发功能,提供以下特点和优势: 线上商城:将服装店的商品信息同步到线上商城平台,让顾客可以通过网站或移动应用程序浏览和购买商品。线上商城可以实现在线支付、订单跟踪、售后服…

Redis的集群模式:主从 哨兵 分片集群

基于Redis集群解决单机Redis存在的问题,在之前学Redis一直都是单节点部署 单机或单节点Redis存在的四大问题: 数据丢失问题:Redis是内存存储,服务重启可能会丢失数据 > 利用Redis数据持久化的功能将数据写入磁盘并发能力问题…

机器学习的分类与经典算法

机器学习算法按照学习方式分类,可以分为有监督学习(Supervised Learning)、无监督学习(Unsupervised Learning)、半监督学习(Semi-supervised Learning)、强化学习(Reinforcement Le…

【LMM 004】LLaVA-RLHF:用事实增强的 RLHF 对齐大型多模态模型

论文标题:Aligning Large Multimodal Models with Factually Augmented RLHF 论文作者:Zhiqing Sun, Sheng Shen, Shengcao Cao, Haotian Liu, Chunyuan Li, Yikang Shen, Chuang Gan, Liang-Yan Gui, Yu-Xiong Wang, Yiming Yang, Kurt Keutzer, Trevor…

树莓派4B-Python使用PyCharm的SSH协议在电脑上远程编辑程序

目录 前言一、pycharm的选择二、添加SSH的解释器使用总结 前言 树莓派的性能始终有限,不好安装与使用高级一点的程序编辑器,如果只用thonny的话,本人用得不习惯,还不如PyCharm,所以想着能不能用电脑中的pycharm来编写…

软件测试面试总结,备战金三银四

测试技术面试题 1、什么是兼容性测试?兼容性测试侧重哪些方面? 参考答案: 兼容测试主要是检查软件在不同的硬件平台、软件平台上是否可以正常的运行,即是通常说的软件的可移植性。 兼容的类型,如果细分的话&#x…

【现代信息检索】国科大何苯老师现代信息检索课程作业 —— 第三次作业

1 docID判断 1判断 2100200311411510610710810901100111111211 表 1 评判情况 表 1 1 1 中是两个判定人员基于某个信息需求对 12 12 12 个文档进行相关性判定的结果(0 不相关,1 相关)。假定我们开发了一个 IR 系统,针对该…

【C语言】大小端字节序详解

文章目录 前言引入大小端字节序大小端字节序的定义为什么会出现大小端之分示例:设计一个小程序来判断当前机器的字节序改进写法(利用联合体成员共用同一块内存空间的特点) 总结 前言 提示:这里可以添加本文要记录的大概内容&…

假两件风衣外套,你喜欢吗?

这款假两件设计的连帽风衣外套,,姐妹们喜欢吗? 宽松版型对身材包容性很强,韩系慵懒风颜色很舒服 时尚百搭怎么穿都好看系列 做了腰部可调节抽绳,想要修身一点的可以自己调节哈 袖口处也做了金属按扣调节,防风保暖 这件风衣也很好搭配&a…

【C++】命名空间、输入输出、缺省参数和函数重载详解

文章目录 前言命名空间命名空间的定义命名空间的使用 C输入输出缺省参数缺省参数定义缺省参数分类 函数重载函数重载的概念函数名修饰规则extern "C"的使用 总结 前言 提示:这里可以添加本文要记录的大概内容: C 是一门强大而灵活的编程语言…

linux释放交换空间-Swap

确保剩余内存比swap内存空间大,再执行以下操作,否则会宕机! 查看swap分区 swapon -s 会查看到你的swap分区位置 停止swap分区 停止swap分区是将swap内存释放到实际内存中 swapoff /dev/dm-1开启swap分区 swap分区内存成功释放到实际内…

ant-design-vue的form表单全局禁用不生效

文章目录 一、问题二、解决2.1、4.0之前的版本2.2、4.0开始的版本 三、最后 一、问题 ​ 实际使用ant-design-vue在开发表单的时候或许会遇到编辑与查看的需求,但是查看的时候表单不允许编辑,ant-design-vue的官方是没有像element一样提供全局disabled属…

message: 没有找到可以构建的 NPM 包,请确认需要参与构建的 npm 都在 `miniprogra

第一步:修改 project.config.json 文件 "packNpmRelationList": [{"packageJsonPath": "./package.json","miniprogramNpmDistDir": "./miniprogram/"}], "packNpmManually": true 第二步:…

Linux--批量自动装机

实验环境 随着某公司业务不断发展,服务器主机的数量也迅速增长,对于功能变更或新采购的服务器, 需要重新安装CentOS7操作系统,为了提高服务器装机效率,要求基于PXE网络实现全自动无人值 守批量安装。 需求描述 > 服…