ubuntu 上vscode +cmake的debug调试配置方法

在ubuntu配置pcl点云库以及opencv库的时候,需要在CMakeLists.txt中加入相应的代码。配置完成后,无法调试,与在windows上体验vs studio差别有点大。

找了好多调试debug配置方法,最终能用的有几种,但是有一种特别好用,具体不清楚原理,但是不用配置含路径和库文件路径和文件,简直是让人惊叹。

有人配置c_cpp_properties.json,我没有配置,网上说是这个相当于配置 ++IntelliSense++ 功能,我只配置了 tasks.json 和launch.json文件。

  1. task.json

    {
    "version": "2.0.0",
    "options": {
    "cwd": "${workspaceFolder}/build"
    },
    "tasks": [
    {
    "type": "shell",
    "label": "cmake",
    "command": "cmake",
    "args": [
    ".."
    ]
    },
    {
    "label": "make",
    "group": {
    "kind": "build",
    "isDefault": true
    },
    "command": "make",
    "args": [

    复制代码
             ]
         },
         {
             "label": "Build",
             "dependsOrder": "sequence", // 按列出的顺序执行任务依赖项
             "dependsOn":[
                 "cmake",
                 "make"
             ]
         }
     ]

    }

2.launch.json,其中program要换成自己的可执行文件

复制代码
{
    // 使用 IntelliSense 了解相关属性。
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "g++ - 生成和调试活动文件",
            "type": "cppdbg",
            "request": "launch",
            "program": "${workspaceFolder}/build/devel/lib/litamin2/litamin2_align",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${workspaceFolder}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ],
            "preLaunchTask": "Build",
            "miDebuggerPath": "/usr/bin/gdb"
        }
    ]
}

3.要在CMakeLists.txt中加入:

复制代码
set(CMAKE_BUILD_TYPE "Debug")

并去掉优化选项(比如O3优化等),否则会乱跳。

4.调试

点击三角形+爬虫的 符号,进入调试,选择

选择这一个就可以开始编译+调试了。

在这里有一个技巧:如果事先在终端中cmake .. 和make之后,这里调试启动就特别快。

参考:

https://zhuanlan.zhihu.com/p/688006076

相关推荐
虾..11 小时前
Linux 软硬链接和动静态库
linux·运维·服务器
Evan芙11 小时前
Linux常见的日志服务管理的常见日志服务
linux·运维·服务器
꧁坚持很酷꧂12 小时前
解决虚拟机Ubuntu22.04连接了串口设备但终端没有显示
ubuntu
hkhkhkhkh12313 小时前
Linux设备节点基础知识
linux·服务器·驱动开发
HZero.chen14 小时前
Linux字符串处理
linux·string
张童瑶14 小时前
Linux SSH隧道代理转发及多层转发
linux·运维·ssh
汪汪队立大功12314 小时前
什么是SELinux
linux
我命由我1234514 小时前
VSCode - Prettier 配置格式化的单行长度
开发语言·前端·ide·vscode·前端框架·编辑器·学习方法
石小千14 小时前
Linux安装OpenProject
linux·运维
柏木乃一14 小时前
进程(2)进程概念与基本操作
linux·服务器·开发语言·性能优化·shell·进程