原創 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閱讀 227,572評論 6 531
  • 序言:濱河連續發生了三起死亡事件,死亡現場離奇詭異,居然都是意外死亡,警方通過查閱死者的電腦和手機,發現死者居然都...
    沈念sama閱讀 98,071評論 3 414
  • 文/潘曉璐 我一進店門,熙熙樓的掌柜王于貴愁眉苦臉地迎上來,“玉大人,你說我怎么就攤上這事。” “怎么了?”我有些...
    開封第一講書人閱讀 175,409評論 0 373
  • 文/不壞的土叔 我叫張陵,是天一觀的道長。 經常有香客問我,道長,這世上最難降的妖魔是什么? 我笑而不...
    開封第一講書人閱讀 62,569評論 1 307
  • 正文 為了忘掉前任,我火速辦了婚禮,結果婚禮上,老公的妹妹穿的比我還像新娘。我一直安慰自己,他們只是感情好,可當我...
    茶點故事閱讀 71,360評論 6 404
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著,像睡著了一般。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發上,一...
    開封第一講書人閱讀 54,895評論 1 321
  • 那天,我揣著相機與錄音,去河邊找鬼。 笑死,一個胖子當著我的面吹牛,可吹牛的內容都是我干的。 我是一名探鬼主播,決...
    沈念sama閱讀 42,979評論 3 440
  • 文/蒼蘭香墨 我猛地睜開眼,長吁一口氣:“原來是場噩夢啊……” “哼!你這毒婦竟也來了?” 一聲冷哼從身側響起,我...
    開封第一講書人閱讀 42,123評論 0 286
  • 序言:老撾萬榮一對情侶失蹤,失蹤者是張志新(化名)和其女友劉穎,沒想到半個月后,有當地人在樹林里發現了一具尸體,經...
    沈念sama閱讀 48,643評論 1 333
  • 正文 獨居荒郊野嶺守林人離奇死亡,尸身上長有42處帶血的膿包…… 初始之章·張勛 以下內容為張勛視角 年9月15日...
    茶點故事閱讀 40,559評論 3 354
  • 正文 我和宋清朗相戀三年,在試婚紗的時候發現自己被綠了。 大學時的朋友給我發了我未婚夫和他白月光在一起吃飯的照片。...
    茶點故事閱讀 42,742評論 1 369
  • 序言:一個原本活蹦亂跳的男人離奇死亡,死狀恐怖,靈堂內的尸體忽然破棺而出,到底是詐尸還是另有隱情,我是刑警寧澤,帶...
    沈念sama閱讀 38,250評論 5 356
  • 正文 年R本政府宣布,位于F島的核電站,受9級特大地震影響,放射性物質發生泄漏。R本人自食惡果不足惜,卻給世界環境...
    茶點故事閱讀 43,981評論 3 346
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望。 院中可真熱鬧,春花似錦、人聲如沸。這莊子的主人今日做“春日...
    開封第一講書人閱讀 34,363評論 0 25
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽。三九已至,卻和暖如春,著一層夾襖步出監牢的瞬間,已是汗流浹背。 一陣腳步聲響...
    開封第一講書人閱讀 35,622評論 1 280
  • 我被黑心中介騙來泰國打工, 沒想到剛下飛機就差點兒被人妖公主榨干…… 1. 我叫王不留,地道東北人。 一個月前我還...
    沈念sama閱讀 51,354評論 3 390
  • 正文 我出身青樓,卻偏偏與公主長得像,于是被迫代替她去往敵國和親。 傳聞我的和親對象是個殘疾皇子,可洞房花燭夜當晚...
    茶點故事閱讀 47,707評論 2 370

推薦閱讀更多精彩內容