Vscode使用cmake进行debug的配置教学(教你学会写json配置)

这篇具有很好参考价值的文章主要介绍了Vscode使用cmake进行debug的配置教学(教你学会写json配置)。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。


误区

目前csdn上很多的cmake配置,无论是用插件还是写json,都不太方便,经常配置不成功。

比如想要运行slambook里的一些代码,用传统的配置方案都是建立在工作区就在本文件夹创建。
这样的缺点有:

  • 每次切换工作区都要重新配置,麻烦
  • 每次增加外部连接库都要用pkg去find路径,麻烦
  • cmake会有一堆cache文件,导致reload操作很复杂

由此,这篇文章就介绍一种可以应用在整个大工作区的配置方案,而且可以diy设计


一、源代码和CmakeLists

1、源代码和c_cpp_properties.json

我们通常把vscode看成一个文本编辑器,一般而言不用作IDE,所以重点在 c_cpp_properties文件的配置中
所以如果不需要debug,可以只看这一章节,主要是用vscode的高亮和检查来方便写代码。

c_cpp_properties.json示例

{
    "configurations": [
        {
            "name": "Linux",
            "includePath": [
                "${workspaceFolder}/**",
                "/usr/include/eigen3",
                "/usr/include",
                "/usr/local/include"
            ],
            "defines": [],
            "compilerPath": "/usr/bin/gcc",
            "cStandard": "c11",
            "cppStandard": "gnu++14",
            "intelliSenseMode": "linux-gcc-x64"
        }
    ],
    "version": 4
}

Ctrl+Shift+P搜索 c++编辑配置,生成c_cpp_properties.json

由于os的不同,自动生成的json可能不一样。
而我们只需要自己添加includePath就行

这个时候语法高亮就会打开,可以舒服地写代码了。

2、CMakeLists

CMakeLists的编写也是具有高亮的,需要下载插件Cmake
Vscode使用cmake进行debug的配置教学(教你学会写json配置)

下载好了之后CMakeLists.txt 开启了高亮和联想。
Vscode使用cmake进行debug的配置教学(教你学会写json配置)

注意:要在cmakelists里面开启DEBUG模式

set(CMAKE_BUILD_TYPE "Debug")

二、Cmake配置

1.Tasks.json

先自动生成默认的Tasks.json
然后进行修改
代码如下(示例):

{
    // See https://go.microsoft.com/fwlink/?LinkId=733558
    // for the documentation about the tasks.json format
    "version": "2.0.0",
    "tasks": [
        {
            "label": "build",
            "type": "shell",
            "command": "rm -rf ${fileDirname}/build;mkdir ${fileDirname}/build;cd ${fileDirname}/build;cmake ..;make",
            "args": []
        }
    ]
}

“label”,给vscode的任务代号
“command”,这个相当于你不用IDE的时候用cmake的时候输入的代码
注意用;分隔代码,逐行执行指令。
我这里的命令是在源代码文件的地方创建一个build文件夹,然后执行cmake和make指令生成二进制文件
当然这里如果没有build文档就会报错,我们可以采取linux的 ∣ ∣ || ∣∣方式执行指令,或者直接在程序第一次执行前创建一个空的build。

这里如果采用g++,那就是其他文章里的相关配置,我这里由于采用的是cmake,所以链接和include指令都在cmakelists里面,arg可以不写。

可以看到我的二进制文件是生成在build里面的
Vscode使用cmake进行debug的配置教学(教你学会写json配置)

2 . Launch.json配置

Launch.json的作用是告诉vscode调用DEBUG组件
配置代码如下(示例):

{
    // 使用 IntelliSense 了解相关属性。 
    // 悬停以查看现有属性的描述。
    // 欲了解更多信息,请访问: https://go.microsoft.com/fwlink/?linkid=830387
    "version": "0.2.0",
    "configurations": [
        {
            "name": "(gdb) 启动cmake",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/build/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "preLaunchTask": "build",
            "MIMode": "gdb",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                },
                {
                    "description": "将反汇编风格设置为 Intel",
                    "text": "-gdb-set disassembly-flavor intel",
                    "ignoreFailures": true
                }
            ]
        },
        {
            "name": "(gdb) 启动",
            "type": "cppdbg",
            "request": "launch",
            "program": "${fileDirname}/${fileBasenameNoExtension}",
            "args": [],
            "stopAtEntry": false,
            "cwd": "${fileDirname}",
            "environment": [],
            "externalConsole": false,
            "MIMode": "gdb",
            "preLaunchTask": "build",
            "setupCommands": [
                {
                    "description": "为 gdb 启用整齐打印",
                    "text": "-enable-pretty-printing",
                    "ignoreFailures": true
                }
            ]
        }
    ]
}

代码的下面一部分是默认生成的,我们复制一份到上面
修改name,可以自己取便于辨认,我的是(gdb) 启动cmake

接下来是重要环节!

修改program: 路径指向上文生成的二进制文件所在路径

${fileDirname} //源代码所在文件夹
${fileBasenameNoExtension} //源代码同名文件(删除后缀)

我这里是${fileDirname}/build/${fileBasenameNoExtension}

prelaunchtask:是告诉vscode在执行二进制文件前需要的操作,我们应该把操作指向cmake生成时的tasks的label,我的是叫build。

最后给源代码打上断点,启动debug就可以正常步进了。

Vscode使用cmake进行debug的配置教学(教你学会写json配置)

拓展

我这里的配置文件是在所有小工程的顶部
Vscode使用cmake进行debug的配置教学(教你学会写json配置)

可以看到.vscode文件夹并不在源代码文件夹中
所以可以在每个chapter中使用,不用重新配置。文章来源地址https://www.toymoban.com/news/detail-457187.html

到了这里,关于Vscode使用cmake进行debug的配置教学(教你学会写json配置)的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • vscode-python的debug 教学(最全)

    Visual Studio Code 的主要功能之一是其强大的调试支持。VS Code 的内置调试器有助于加速编辑、编译和调试循环。 在插件库内搜索python Debugger,安装插件 (1)创建debug_learning.py测试文件 (2)设置断点 (2)启动debug模式 (3)debug的各个按钮的介绍 开始调试 以下文档基于内置的

    2024年04月11日
    浏览(29)
  • Ubuntu中使用vscode+cmake引用第三方库进行编译调试

    在自己的项目中引用openCV和Eigen库。 opencv和Eigen库的编译安装参见上一篇文章https://blog.csdn.net/qq_41816368/article/details/130090823?spm=1001.2014.3001.5502#t4 其他的第三方库放在工作空间的thirdparty文件夹,项目编译时一起编译,不提前安装。 首先新建一个文件夹作为工作空间 在创建Thir

    2023年04月25日
    浏览(62)
  • b站第一,Python自动化测试实战详细教学,3天教你学会自动化测试

    目录 简介 Python自动化测试概述 Python自动化测试目标 Python自动化测试流程 1. 测试计划和设计 2. 测试脚本开发 3. 测试执行和管理 4. 测试维护和优化 Python自动化测试最佳实践 Python自动化测试工具和框架 结论 自动化测试是软件开发过程中一个必不可少的环节。而Python作为一门

    2024年02月03日
    浏览(46)
  • 使用Vscode进行Vue的debug调试功能,研究了一天终于可以了,同时解决Unbound breakpoint灰点问题

    实现的结果:在vscode中可以直接debug上一步下一步等,同时在浏览器里面也可以执行这样的操作,这样的debug功能,谁不想要呢?谁还没有呢?是不是你,哈哈哈哈 在浏览器里面debug实现: 源代码中增加 debugger 或者  console.log 在 Chrome 浏览器 Sources 中加断点 vscode 中直接调试,

    2024年02月07日
    浏览(33)
  • VSCode-Python传参数进行Debug

    新建demo.py 命令行运行 python demo.py --host 127.0.0.1 --port 22 --user root 可以看到输出结果 在vscode点击debug的图标--create a launch.json file---python File 初始的json文件如下: Ctrl+shif+p切换python环境并更改./vscode/launch.json如下 之后打断点按F5或者Run--Start Debugging 就可以了

    2024年02月13日
    浏览(57)
  • windows下使用microsoft、intel、gnu不同编译器利用cmake和vscode对c++和fortran程序进行编译和调试

    由于编译器支持特性、编译后程序运行速度、安装使用便捷程度等的不同,我们往往会安装多种不同的编译器。对于c++语言主要的编译器有:microsoft、intel、gnu等,对于fortran语言则更多,包括gnu、intel、pgi等等。不同的编译器在一个系统下,往往需要利用一些手段进行区分,

    2024年02月05日
    浏览(59)
  • VSCode中配置CMake

    很久没有更新博客了,之前寒假写过一个通过修改tasks.json配置文件来运行多文件项目的方法,实际上太繁琐太不优雅且不实用,我仅在学校的C语言作业里用过一次,后来一直使用cmake来链接c/cpp项目,camke在平台上更适合win平台或者跨平台开发,在编程语言上更适合cpp开发,

    2024年02月06日
    浏览(41)
  • vscode debug 配置:launch.json

    打开新项目左边的“运行和调试” 点击蓝色字体“创建 launch.json 文件” 选择上方“python” 选择“Python 文件 调试当前正在运行的Python文件” 配置 launch.json 文件内容: \\\"justMyCode\\\": true debug时只进入项目自带文件,不进入安装的包文件 \\\"env\\\": {\\\"PYDEVD_WARN_SLOW_RESOLVE_TIMEOUT\\\": \\\"2\\\"} 多长

    2024年04月14日
    浏览(38)
  • VSCode-C++环境配置+Cmake

    转载链接 创建CMakeLists.txt

    2024年02月11日
    浏览(43)
  • 【VSCode】Windows环境下,VSCode 搭建 cmake 编译环境(通过配置文件配置)

    除了之前的使用 VSCode 插件来编译工程外,我们也可以使用配置文件来编译cmake工程,主要依赖 launch.json 和 tasks.json 文件。 目录 一、下载编译器 1、下载 Windows GCC 2、选择编译器路径 二、配置 debug 环境 1、配置 lauch.json 文件 2、配置 tasks.json 文件 三、编译工程 1、测试工程结

    2024年02月03日
    浏览(49)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包