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

这篇博客介绍了如何在MacOS环境下使用VSCode配置C++环境,特别是针对OpenCV项目的调试。内容涵盖VSCode调试器的原理、创建.launch文件、配置tasks.json和launch.json文件,以及调试控制台的使用和cout输出位置的调整。通过示例详细解释了如何调试OpenCV程序,并提供了相关配置文件的示例。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

之前在 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": [
        {
   
   
            "name": "(lldb) 启动",  
            // 显示在界面上的当前`.launch`配置文件的名称,当有多个调试配置时,方便区分
           
            "type": "cppdbg", 
            // 如果是Visual Studio Windows,则这个值为"cppvsdbg",
            // 如果是GDB或者LLDB,则值就是"cppdbg"
            // 当创建`.launch`文件时会默认给正确的值
            
            "request": "launch",
          ⭐️"program": "输入程序名称,例如 ${workspaceFolder}/a.out",
          // 指明可执行文件的完整路径,需要这个参数来加载debug symbols
          //(只有debug模式下生成的可执行文件才有debug symbols)
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "lldb"
        }
    ]
}
  • additionalSOLibSearchPath,其他依赖的.so文件的搜索路径,如果有多个路径,用半角的分号分开,例如:“/Users/user/dir1;/Users/user/dir2”.
  • targetArchitecture,这个参数在文档中显示是已经废弃了,会自动检测。(但是事实上,目前不明确这个参数,会报warning)
  • ${workspaceFolder} - the path of the folder opened in VS Code,一般推荐用这个
  • ${fileDirname} - the current opened file’s folder path
  • 更多的暂时用不到,如果还有特别的需求,可以去这里看, Configure C/C++ debugging

另外,鼠标移动到字段上也会有字段说明的提示:
在这里插入图片描述

参考:

2.3 调试OpenCV的.launch文件示例

2.3.1 .launch文件demo

当前的文件结构

(base)  ⇄ ↺ ✿ ♬  ~/Documents/DailyStudy/cpp/opencv_code  tree -L 1
.
├── DisplayImage
├── DisplayImage.cpp  
├── DisplayImageDebug //Debug模式的可执行文件
└── DisplayImageDebug.dSYM

使用的.launch配置文件

{
   
   
    "version": "0.2.0",
    "configurations": [
        {
   
   
            "name": "OpenCV_Debug",
            "type": "cppdbg",
            "request": "launch",
            "targetArchitecture": "x86_64",
            "program": "${workspaceFolder}/DisplayImageDebug",
            "args": [
                "XXXX/opencv-4.8.0/samples/data/lena.jpg"
            ],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "additi
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

吨吨不打野

解决了问题,觉得还行就给点

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值