学习OpenCV(蝴蝶书/C++)相关——2.MacOS下使用LLDB调试cpp程序

文章目录

  • 1. VScode中的调试
  • 2. 配置VSCode中C++的调试(以OpenCV为例)
    • 2.1 创建适用于C++的.launch文件
    • 2.2 常见参数说明
    • 2.3 调试OpenCV的.launch文件示例
      • 2.3.1 .launch文件demo
      • 2.3.2 Debug模式的可执行文件
  • 3. 联合task.json文件一起使用
    • 3.1 创建tasks.json和launch.json文件
    • 3.2 tasks.json和launch.json示例

之前在 mac下vscode配置c++环境用过简单的launch.json的配置。

但是不足以支撑我这里调用OpenCV这些第三方库的调试,因此认真看了一下。

1. VScode中的调试

当不创建launch.json,直接点击左侧运行和调试时,

在这里插入图片描述

在有CMakeFiles的情况下,可以看到输出信息如下:
在这里插入图片描述
其实还是先用cmake生成了debug模式的目标代码,同时也link了,其实就是生成了DisplayImage的可执行文件。

如果删除CMakeFiles,则输出信息如下:
在这里插入图片描述
其实是先调用clang++来生成可执行文件。

因此,VSCode中调试C++程序本质上还是先生成可执行文件,然后使用MacOS默认的调试器LLDB进行调试。
因此,需要使用launch.json对调试进行一些配置。

与gdb的调试过程是类似的,针对的都是debug模式下生成的可执行文件,详见:C++——linux下使用gcc或者cmake进行c++程序开发中3.1 常用调试命令参数 部分

2. 配置VSCode中C++的调试(以OpenCV为例)

在VSCode中,.launch文件是用来配置debugger的,位于项目的.vscode文件夹中。如果要启动调试过程,则必须把要调试的可执行文件的路径填入program字段中。

2.1 创建适用于C++的.launch文件

在这里插入图片描述
按照上述图示的①②③分别点击,然后ctrl+S保存,就可以得到以下界面:
在这里插入图片描述
由于创建了一个.launch配置文件,因此左上角是可以选择不同的.launch配置文件。

2.2 常见参数说明

⭐️表示必须参数

{"version": "0.2.0","configurations": [{

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

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

相关文章

数字化仪的超声波应用

超声波是频率大于人类听觉范围上限的声学声压(声学)波。超声波设备的工作频率为 20 kHz 至几千 MHz。表 1 总结了一些更常见的超声波应用的特征。每个应用中使用的频率范围都反映了实际情况下的平衡。提高工作频率可以通过提高分辨率来检测较小的伪影&am…

【紫光同创国产FPGA教程】——PDS安装教程

本原创教程由深圳市小眼睛科技有限公司创作,版权归本公司所有,如需转载,需授权并注明出处 一:软件简介 PangoDesign Suite是紫光同创基于多年FPGA开发软件技术攻关与工程实践经验而研发的一款拥有国产自主知识产权的大规模FPGA开…

【yolov5】onnx的INT8量化engine

GitHub上有大佬写好代码,理论上直接克隆仓库里下来使用 git clone https://github.com/Wulingtian/yolov5_tensorrt_int8_tools.git 然后在yolov5_tensorrt_int8_tools的convert_trt_quant.py 修改如下参数 BATCH_SIZE 模型量化一次输入多少张图片 BATCH 模型量化…

智能一体化管网水位监测仪怎么样?

城市排水管网是城市正常运行的关键环节,这是地上和地下通道的连接点,一旦出现问题便会影响城市生命线建设的工程进展。在复杂的地下管道内想要了解水位数据,对于政府部门来讲是一个管理难题。如果可以采取智能产品在其中发挥作用,…

threejs(12)-着色器打造烟雾水云效果

一、自己封装水波纹效果 src/main/main01.js import * as THREE from "three";import { OrbitControls } from "three/examples/jsm/controls/OrbitControls"; import gsap from "gsap"; import * as dat from "dat.gui"; import ver…

江西开放大学引领学习新时代:电大搜题助力学子迈向成功

江西开放大学(简称江西电大)一直以来致力于为学子提供灵活便捷的学习服务。近年来,携手电大搜题微信公众号,江西开放大学以其卓越的教学质量和创新的教学手段,为广大学子开启了一扇通向成功的大门。 作为一家知名的远…

深入了解JVM和垃圾回收算法

1.什么是JVM? JVM是Java虚拟机(Java Virtual Machine)的缩写,是Java程序运行的核心组件。JVM是一个虚拟的计算机,它提供了一个独立的运行环境,可以在不同的操作系统上运行Java程序。 2.如何判断可回收垃圾…

远程电脑未连接显示器时分辨率太小的问题处理

背景:单位电脑显示器坏了,使用笔记本通过向日葵远程连接,发现分辨率只有800*600并且不能修改,网上找了好久找到了处理方法这里记录一下,主要用到的是一个虚拟显示器软件usbmmidd_v2 1)下载usbmmidd_v2 2)…

js案例:打地鼠游戏(打灰太狼)

效果预览图 游戏规则 当灰太狼出现的时候鼠标左键点击灰太狼加10分,小灰灰出现的时候鼠标左键点小灰灰击减10分,不点击不减分不加分。 整体思路 1.把获取背景图片中每个地洞的位置,把所有位置放到一个数组中。 2.封装随机数函数,随…

RSA 2048位算法的主要参数N,E,P,Q,DP,DQ,Qinv,D分别是什么意思 哪个是通常所说的公钥与私钥 -安全行业基础篇5

非对称加密算法RSA 在RSA 2048位算法中,常见的参数N、E、P、Q、DP、DQ、Qinv和D代表以下含义: N(Modulus):模数,是两个大素数P和Q的乘积。N的长度决定了RSA算法的安全性。 E(Public Exponent&a…

vite基础学习笔记:14.路由跳转(二)携带query参数

说明:自学做的笔记和记录,如有错误请指正 1. 路由跳转(携带query参数) (1)第一层路由(点击卡片路由跳转至新页面-携带query参数) 知识点: query传参对应的是path和qu…

移动医疗科技:开发互联网医院系统源码

在这个数字化时代,互联网医院系统成为了提供便捷、高效医疗服务的重要手段。本文将介绍利用移动医疗科技开发互联网医院系统的源码,为医疗行业的数字化转型提供有力支持。 智慧医疗、互联网医院这一类平台可以通过线上的形式进行部分医疗服务&#xff…