vscode 调试(linux )

news2024/11/27 9:37:51

一、配置程序运行依赖

1, 打开配置文件(launch.json)

(1) 从工具栏打开Run–>Add Configuration…
在这里插入图片描述

(2)查看配置文件(launch.json)
在这里插入图片描述


2,添加配置

(1) 配置可执行程序(program);
(2) 指明调试器类型(type);
(3) 可执行程序工作目录(cwd);
(4) 配置可执行程序输入参数(args);
(5) 添加可执行程序依赖的环境变量(environment);
(6) 添加调试器(MIMode) ;
在这里插入图片描述


3, 配置参数介绍

(1)name:配置的名字,可以存在不同配置,一般是一个调试目标有一个配置(显示在调试侧边栏上下拉选择列表中);
(2)type:表明调试器的类型,使用Visual Studio Windows Debuger的时候必须是cppvsdbg;使用GDB或者LLDB时为cppdbg
(3) request:表明是执行(launch)目标程序,还是连接(attach)已有的实例;
(4)program:表明调试的目标程序;
(5)args:执行目标参数需要的参数,格式为json列表;
(6) cwd:目标程序执行的工作目录;
(7) MIMode:表明使用的调试器,gdb或者是lldb
(8) preLaunchTask:就是在开始调试前需要执行的任务,定义在task.json文件中,一般用来定义编译任务,生成目标程序。

// launch.json示例
{
    // 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": "gcc - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "/home/sbinhuang/Desktop/workspace/self_utility/test/test_exec",
            "args": [],
            "stopAtEntry": false,
            "cwd": "/home/sbinhuang/Desktop/workspace/self_utility/test",
            "environment": [
                {"name": "LD_LIBRARY_PATH", "value": "/home/sbinhuang/Desktop/workspace/self_utility/bin/self_utility"}
            ],
            "externalConsole": false,
            "MIMode": "gdb",
        }
    ]
}

二、调试程序

1,添加断点

(1)打开源文件(cpp),鼠标点击代码行左侧区域,出现一个红点,标识此处被设置为一个断点;
在这里插入图片描述


2,开启调试模式,运行可执行程序

(1) 工具栏Run–> Start Debugging
在这里插入图片描述

(2) 步骤(1)操作后,进入程序调试界面,左边栏时调试时,变量值和程序调用栈;右边是代码以及显示程序执行到的位置;
在这里插入图片描述

(3) 控制程序运行
在这里插入图片描述


3,调试多进程程序

(1) 调试程序运行到创建一个子进程时,设置跟踪控制的进程;需要在调试终端命令行串口输入命令(set follow-fork-mode mode);

# 调试子进程
set follow-fork-mode child
# 调试当前进程
set follow-fork-mode parent

(2) 调试当前进程,设置当前进程模式
在这里插入图片描述

(3) 调试子进程,设置子进程模式
在这里插入图片描述

(4) 当前进程模式,调试示例
在这里插入图片描述

在这里插入图片描述

(4) 子进程模式,调试示例
在这里插入图片描述

在这里插入图片描述

三、注意事项

(1)fork(), system()产生子进程,调试时,切换到子进程后,立即设置set follow-fork-mode parent, 避免陷入下一级子进程;
(2)参考文章

https://code.visualstudio.com/docs/cpp/launch-json-reference
https://code.visualstudio.com/docs/cpp/config-linux

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

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

相关文章

ceph存储的应用

ceph存储的应用 一:创建 CephFS 文件系统 MDS 接口1.服务端操作1)在管理节点创建 mds 服务2)查看各个节点的 mds 服务3)创建存储池,启用 ceph 文件系统4)查看mds状态,一个up,其余两个…

reggie优化01-缓存短信验证码和菜品数据

1、缓存短信验证码 1.1 Redis配置类RedisConfig 在config包下,创建Redis配置类RedisConfig: 纳入Git管理: package com.itheima.reggie.config;import org.springframework.cache.annotation.CachingConfigurerSupport; import org.sprin…

接口自动化测试框架unittest和pytest差异比较

前言 说到 Python 的单元测试框架,想必接触过 Python 的朋友脑袋里第一个想到的就是unittest。 的确,作为 Python 的标准库,它很优秀,并被广泛用于各个项目。但你知道吗?其实在 Python 众多项目中,主流的单…

【ROS机械臂入门教程】

首先声明一下,此项目是参考B站哈萨克斯坦UP的【ROS机械臂入门教程】,前期以复现【机械臂视觉抓取从理论到实战】 此内容为他研究生生涯的阶段性成果展示和技术分享,所有数据和代码均开源。所以鹏鹏我又特此来复现一下,我采用的硬件…

Redis源码篇 - Reactor设计模式 和 Redis Reactor设计模式

Reactor :反应器模式或者应答者模式,它是一种基于事件驱动的设计模式。拥有一个或者多个输入源,通过反应器分发给多个worker线程处理,实现并发场景下事件处理。 此图网上找的,画的很好:

中国新一代载人运载火箭“长征十号”发布,衍生型号积极研发中

我国新一代载人运载火箭“长征十号”已发布,主要用于将月面着陆器和登月飞船送入地月转移轨道。此外,“长征十号”还有一个衍生型号正在积极研发中。根据中国运载火箭技术研究院官方消息,近期,火箭院北京强度环境研究所圆满完成了…

SQlite3数据库相关相关命令

1&#xff09;系统命令 以 ‘.’ 开头 .help 帮助手册 .exit 退出 .table 查看当前数据库的有的表格名 .databases .schema 查看表的结构属性2&#xff09;sql语句 以 ;结尾 1. 创建表格 create table <table-name> (id integer, age integer, name char, score f…

夜深人静学32系列18——DMA+ADC单/多通道采集

夜深人静学32系列18——DMAADC单/多通道采集 DMA & ADC (理论篇)DMADMA框图DMA通道与外设对应表 ADC重要知识不同模式组合的作用 为什么要是用DMA ADC&#xff1f;DMA & ADC (实战篇)任务要求原理图CubeMX配置代码实现实验现象 很久没更新了&#xff0c;这次我们浅浅的…

MVSNet、PatchMatchNet环境配置、运行演示

文章目录 1 环境配置要求2 配置流程2.1 创建新环境mvs环境2.2 配置 PatchMatchNet环境3 程序运行演示1 环境配置要求 Ubuntu 18.04 python 3.7 , CUDA 10.1。 requirements.txt torch==1.4.0 torchvision==0.5.0 opencv-python numpy plyfile pillow tensorboard以上环境MV…

Docker 快速搞定 selenium grid 分布式测试

目录 前言&#xff1a; NO.1 搭环境 NO.2 写代码 NO.3 并发 感想 前言&#xff1a; Docker是一个流行的容器化平台&#xff0c;它可以帮助开发人员快速构建、部署和运行应用程序。Selenium Grid是一个用于分布式测试的工具&#xff0c;它可以并行执行多个测试用例&#xf…

做接口测试需要哪些技能、怎么做?

目录 1、什么是接口测试&#xff1f; 2、接口测试需要会什么&#xff1f; 3、如何学这些技能&#xff1f; 4、如何获取接口相关信息&#xff1f; 5、如何进行进行接口测试&#xff1f; 6、自动化接口测试 7、其他 1、什么是接口测试&#xff1f; 定义&#xff1a;测试系…

【ARM Coresight 系列文章 10 - ARM Coresight STM 介绍及使用】

文章目录 ARM System Trace MacrocellSTM FeaturesSTM 与 ETM/PTM的差异STM Master ARM System Trace Macrocell ARM 对STM 的解释是其支持高带宽的"仪器化输出"&#xff0c;仪器化输出其实也就是像 Cortex-M 系列中的 ITM 一样&#xff0c;通过将数据写入 STM 的 s…

(中等)LeetCode 328. 奇偶链表 Java

对于链表中有零个、一个、两个节点的情况&#xff0c;直接返回即可 对于链表的节点数大于两个的情况&#xff0c;需要讨论&#xff0c;看当前节点是第奇数个节点还是第偶数个节点 class Solution {public ListNode oddEvenList(ListNode head) {if (head null || head.next …

Android Glide onlyRetrieveFromCache downloadOnly submit ,kotlin

Android Glide onlyRetrieveFromCache downloadOnly submit ,kotlin Glide预加载&#xff0c;加载到磁盘或者内存缓存&#xff0c;然后加载的图片只从缓存&#xff08;磁盘缓存或者内存缓存&#xff09;中取。 private val imageFile File("/storage/emulated/0/DCIM/Ca…

百科创建必看攻略!人物百度百科怎么创建?5分钟教会你创建人物百度百科词条

百度人物百科是一个广受欢迎的在线百科平台&#xff0c;它为用户提供了一个便捷的方式来了解各种各样的人物信息。如果你有一个人物的详细资料&#xff0c;你可以通过创建一个百度人物百科页面来分享这些信息。 下面是分媒互动分享的创建百度人物百科页面的步骤以及需要注意的几…

ConfigMap 补充 和 Secret

对于上一篇文章我们分享了为什么要使用 ConfigMap &#xff0c;我们创建 ConfigMap 的时候可以传入单个或者多个键值对&#xff0c;也可以传入文件&#xff0c;还分享了如何简单的传入 ConfigMap 里面的数据作为环境变量 我们补充一下使用 ConfigMap 一次性传递多个条目吧 一…

直击现场|Sui Builder House巴黎站倒计时0天

Sui Builder House下一站即将在法国巴黎举行&#xff0c;为世界各地的开发人员提供在这座被誉为“City of Light”的城市学习和交流的机会。 Sui Builder House将于7月18–19日在巴黎举行&#xff0c;这是展示Sui突破性技术的绝佳机会。在丹佛Builder House活动之后&#xff0c…

PCIe总线的链路训练

目录 概述 链路训练的目的 几个关键概念 Lane reveral &#xff1a; Polarity inversion&#xff1a; De-skew&#xff1a; link number&#xff1a; Lane number&#xff1a; Bit lock&#xff1a; Symbol lock&#xff1a; 几个特殊序列&#xff1a; TS1和TS2&am…

深度学习系列8——分类模型评估指标

1. 概述 1.1 分类 分类&#xff1a;标签为离散值。 回归&#xff1a;标签为连续值。 2. 混淆矩阵 二分类的混淆矩阵&#xff1a; TP 和 TN 为网络预测正确的部分&#xff0c;FP 和 FN 为网络预测错误的部分。 3. 二级指标 准确率&#xff1a; 针对模型的整体评估&#xf…

Java基础之复习笔记(上)

目录 一、Java是什么&#xff1f; &#x1f496;Java概念 &#x1f496;Java运行机制 二、Java的语言基础 &#x1f496;关键字 &#x1f496;基本数据类型 &#x1f496;运算符 三、Java逻辑控制 &#x1f496;分支结构 &#x1f496;循环结构 四、Java的方法 &#…