原创 Linux环境下 使用vscode 调试cmake工程

我相信大家会经常在linux下会经常去编译别人写好的或者自己写好的用cmake组织的C/C++工程

mkdir build && cd build && cmake ../ && make && sudo make install && ldconfig

等等这一套操作下来,看着命令行的飞速滚动很爽

但是我们也会经常遇到这种需求,就是你需要去改变别人项目里面的一些源代码,这个时候你该怎么办呢?

通常情况下,我们会用vim打开相应的文件,然后修改,再执行一遍上述操作。

但是,如果遇到bug了呢,我们该怎么去调试呢,或者是单纯想要看看这种项目的中间运行状态呢?

一般情况下我们会去用gdb去调试,但是很不方便,起码我是用不惯。

有人说啦,vim很强大,可以支持各种插件,打造自己的ide,听起来很美好,但是当我打开那个配置教程的时候

我内心是崩溃的,我觉着没有个半天1天时间的我是学不会那些东西的,而且我内心里总觉着那些东西太极客了,有点装逼的成分在里面。

这与我的主要目的去调bug好像并没有什么关系,于是我决定决定要用懒人的方法。

我就是想在linux下找一个好用的ide,之前我用过clion,但是这个东西特别巨大,而且在我的虚拟机运行的ubuntu上老是显示的很奇怪,甚至还会有重影的现象,我受不了,遂弃之。

今天尝试了一下vscode,早就耳闻这个东西很好,我之前在做前端开发的时候也一直在用,现在准备拾起来让他去搞我的C/C++项目。

但是我尝试了第一把,就很不舒服,遇到了很多坑。

首先呢,我在搜网上相关文档的时候就没有很匹配的,比如,我就想解决这种已经被cmake组织好的项目,我在vscode里面再怎么去配置,让他能够直接在vscode里面去生成可以debug的代码。

我的需求就是这样,但是网上的文章要么是说如何从0搭建一个项目,这显然与我的要求不符,要么是一些vscode官方文档这种大部头,我也不爱看,真的不是很实用。



下面是正文,教大家如何用vscode 调试已有的cmake工程。

1. 首先安装vscode,去官网https://code.visualstudio.com/里面选择对应的linux版本下载就行了,我在ubunut下下载的是.deb文件,可以直接双击安装

    安装之后呢,这个vscode在命令行里面的名称叫code,这个有点意思,我也不知道为啥不叫vscode

2. 安装插件,主要是装几个cmake和c++的一些插件

装插件的方法就是在点击方块按钮,搜索插件名字安装即可,下图就是我安装的几个插件,大家按照图片装上就好了



安装的几个插件

3.  导入文件夹,在file中的open folder导入你的项目目录

4. 下面是最重要的配置launch.json文件,这个文件的作用是配置调试的相关信息

    当按F5之后会自动跳出来一个launch.json,但是一定要注意要修改几个参数,

    修改program字段,workspaceFolder就是你导入的文件夹的目录,然后你需要指定一个可执行文件进行调试 

   如果你在运行这个可执行文件的时候需要参数,可以在args字段中配置。

最终要的是externalConsole字段,默认配置是true,但是我在ubuntu下的时候,当开始调试的时候,会一直卡着,我将这个值改为false了之后,就可以正常调试了

   为了得到更多的调试信息,可以在加入一个logging字段


    5. 然后是最关键的操作步骤了

        首先你要先让vscode生成相应makefile啊,类似以前的cmake ../

       在这个地方,你需要点击底部的小篮筐里面的Cmake:Debug:Ready选项


之后会蹦出


因为我们需要调试,所以需要点击Debug这个选项,这样他就可以自动生成支持调试的makefile了

之后可以在output框中看到cmake程序在运行


运行成功后,我们要进行make编译,这个地方需要选择合适的编译器,同样是在小篮框的位置,可以进行编译器的选择,点击之后会蹦出可以选择的编译器


可选择的编译器

大家根据自己的项目而定,在这里我要编一个c++的项目,所以我选择的是GCC 5.4.0

然后就可以点击小蓝框的build了

大家同样可以在output中看到我们进行了make


至此,我们已经生成了可以进行debug的可执行文件,我们就把它卸载launch.json文件中的program字段中就好了

然后我们就可以进行launch调试了


经过一下午的努力,我终于用vscode调试成功了,真的很方便,可以在GUI下设置断点,还是非常方便的,观察变量的值也是非常的方便,欢迎大家都操作起来~

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
  • 序言:七十年代末,一起剥皮案震惊了整个滨河市,随后出现的几起案子,更是在滨河造成了极大的恐慌,老刑警刘岩,带你破解...
    沈念sama阅读 200,612评论 5 471
  • 序言:滨河连续发生了三起死亡事件,死亡现场离奇诡异,居然都是意外死亡,警方通过查阅死者的电脑和手机,发现死者居然都...
    沈念sama阅读 84,345评论 2 377
  • 文/潘晓璐 我一进店门,熙熙楼的掌柜王于贵愁眉苦脸地迎上来,“玉大人,你说我怎么就摊上这事。” “怎么了?”我有些...
    开封第一讲书人阅读 147,625评论 0 332
  • 文/不坏的土叔 我叫张陵,是天一观的道长。 经常有香客问我,道长,这世上最难降的妖魔是什么? 我笑而不...
    开封第一讲书人阅读 54,022评论 1 272
  • 正文 为了忘掉前任,我火速办了婚礼,结果婚礼上,老公的妹妹穿的比我还像新娘。我一直安慰自己,他们只是感情好,可当我...
    茶点故事阅读 62,974评论 5 360
  • 文/花漫 我一把揭开白布。 她就那样静静地躺着,像睡着了一般。 火红的嫁衣衬着肌肤如雪。 梳的纹丝不乱的头发上,一...
    开封第一讲书人阅读 48,227评论 1 277
  • 那天,我揣着相机与录音,去河边找鬼。 笑死,一个胖子当着我的面吹牛,可吹牛的内容都是我干的。 我是一名探鬼主播,决...
    沈念sama阅读 37,688评论 3 392
  • 文/苍兰香墨 我猛地睁开眼,长吁一口气:“原来是场噩梦啊……” “哼!你这毒妇竟也来了?” 一声冷哼从身侧响起,我...
    开封第一讲书人阅读 36,358评论 0 255
  • 序言:老挝万荣一对情侣失踪,失踪者是张志新(化名)和其女友刘颖,没想到半个月后,有当地人在树林里发现了一具尸体,经...
    沈念sama阅读 40,490评论 1 294
  • 正文 独居荒郊野岭守林人离奇死亡,尸身上长有42处带血的脓包…… 初始之章·张勋 以下内容为张勋视角 年9月15日...
    茶点故事阅读 35,402评论 2 317
  • 正文 我和宋清朗相恋三年,在试婚纱的时候发现自己被绿了。 大学时的朋友给我发了我未婚夫和他白月光在一起吃饭的照片。...
    茶点故事阅读 37,446评论 1 329
  • 序言:一个原本活蹦乱跳的男人离奇死亡,死状恐怖,灵堂内的尸体忽然破棺而出,到底是诈尸还是另有隐情,我是刑警宁泽,带...
    沈念sama阅读 33,126评论 3 315
  • 正文 年R本政府宣布,位于F岛的核电站,受9级特大地震影响,放射性物质发生泄漏。R本人自食恶果不足惜,却给世界环境...
    茶点故事阅读 38,721评论 3 303
  • 文/蒙蒙 一、第九天 我趴在偏房一处隐蔽的房顶上张望。 院中可真热闹,春花似锦、人声如沸。这庄子的主人今日做“春日...
    开封第一讲书人阅读 29,802评论 0 19
  • 文/苍兰香墨 我抬头看了看天上的太阳。三九已至,却和暖如春,着一层夹袄步出监牢的瞬间,已是汗流浃背。 一阵脚步声响...
    开封第一讲书人阅读 31,013评论 1 255
  • 我被黑心中介骗来泰国打工, 没想到刚下飞机就差点儿被人妖公主榨干…… 1. 我叫王不留,地道东北人。 一个月前我还...
    沈念sama阅读 42,504评论 2 346
  • 正文 我出身青楼,却偏偏与公主长得像,于是被迫代替她去往敌国和亲。 传闻我的和亲对象是个残疾皇子,可洞房花烛夜当晚...
    茶点故事阅读 42,080评论 2 341

推荐阅读更多精彩内容