如何在VS Code 中使用ARM GDB調(diào)試程序


讀者:

需要在ARM 芯片上調(diào)試潘酗, 如Cotex M4, 使用交叉編譯器/調(diào)試器arm-none-eabi-gcc/gdb

對(duì)原有的console界面或者tui界面覺得不滿意的

需要遠(yuǎn)程調(diào)試的民效,gdbserver enabled by JLINK

準(zhǔn)備:

code 1.19.1

Ubuntu 16.04

arm-none-eabi-gdb 7.10.1


正文

1. 打開VS CODE, menu -> view -> debug( ctrl + shift + D )

2. menu -> debug -> Open configurations, 你會(huì)看到一個(gè)默認(rèn)的配置文件

3.1 如果你有默認(rèn)的初始化腳本冕杠,如以前調(diào)試時(shí)為arm-xxx-gdb -x xxx.gdbinit, 替換配置文件為以下:

{

? ? "version": "0.2.0",

? ? "configurations": [

? ? ? ? {

? ? ? ? ? ? "name": "Debug",

? ? ? ? ? ? "type": "cppdbg",

? ? ? ? ? ? "request": "launch",

? ? ? ? ? ? "miDebuggerPath": "/user/local/bin/arm-none-eabi-gdb",

? ? ? ? ? ? "targetArchitecture": "arm",

? ? ? ? ? ? "program": "${workspaceRoot}/output/Some.elf",

? ? ? ? ? ? "setupCommands": [

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "text": "cd ${workspaceRoot}/build/gcc/" ? //(可選)進(jìn)入你的gdb初始化腳本目錄

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "text": "source some.gdbinit" ? ? ? //加載我們的初始化腳本谨娜,通常初始化腳本會(huì)執(zhí)行target remote connect 等一系列操作

? ? ? ? ? ? ? ? },


? ? ? ? ? ? ],

? ? ? ? ? // "preLaunchTask": "make",

? ? ? ? ? ? "launchCompleteCommand": "None",

? ? ? ? ? ? "externalConsole": false,

? ? ? ? ? ? "cwd": "${workspaceRoot}"

? ? ? ? }

? ? ]

}


3.2 如果你使用的是直接arm-xxx-gdb some.elf 則可替換配置文件為, setup commands內(nèi)容可自行更改:

{

? ? "version": "0.2.0",

? ? "configurations": [

? ? ? ? {

? ? ? ? ? ? "name": "Debug",

? ? ? ? ? ? "type": "cppdbg",

? ? ? ? ? ? "request": "launch",

? ? ? ? ? ? "miDebuggerPath": "/usr/local/bin/arm-none-eabi-gdb",

? ? ? ? ? ? "targetArchitecture": "arm",

? ? ? ? ? ? "program": "${workspaceRoot}/output.elf",

? ? ? ? ? ? "setupCommands": [

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "text": "file '${workspaceRoot}/output.elf'"

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "text": "target extended-remote /dev/cu.usbmodemXXXXXXXX"

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "text": "monitor tpwr enable"

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "text": "monitor swdp_scan"

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "text": "attach 1"

? ? ? ? ? ? ? ? },

? ? ? ? ? ? ? ? {

? ? ? ? ? ? ? ? ? ? "text": "load ${workspaceRoot}/output.elf"

? ? ? ? ? ? ? ? }

? ? ? ? ? ? ],

? ? ? ? ? ? "preLaunchTask": "make",

? ? ? ? ? ? "launchCompleteCommand": "None",

? ? ? ? ? ? "externalConsole": false,

? ? ? ? ? ? "cwd": "${workspaceRoot}"

? ? ? ? }

? ? ]

}

4. 保存好配置文件呕屎,就可以點(diǎn)擊左上角綠色的箭頭(F5)啟動(dòng)調(diào)試. 如果遇到錯(cuò)誤提示让簿,一般是某某文件沒有找到,可以對(duì)應(yīng)進(jìn)行檢查.如果是某些命令不支持秀睛,建議放入gdbinit腳本中尔当,采用3.1配置

5. 如果vscode 沒有報(bào)錯(cuò) , 芯片的console可以繼續(xù)跑蹂安,基本上就是attach成功椭迎, 加個(gè)斷點(diǎn)試試吧。

Thanks~

引用:

https://github.com/Microsoft/vscode-cpptools/issues/328

https://jeasonstudio.gitbooks.io/vscode-cn-doc/content/md/%E7%BC%96%E8%BE%91%E5%99%A8/%E8%B0%83%E8%AF%95.html

作者:

云一JL

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請(qǐng)聯(lián)系作者
  • 序言:七十年代末田盈,一起剝皮案震驚了整個(gè)濱河市畜号,隨后出現(xiàn)的幾起案子,更是在濱河造成了極大的恐慌允瞧,老刑警劉巖简软,帶你破解...
    沈念sama閱讀 218,941評(píng)論 6 508
  • 序言:濱河連續(xù)發(fā)生了三起死亡事件,死亡現(xiàn)場(chǎng)離奇詭異述暂,居然都是意外死亡痹升,警方通過查閱死者的電腦和手機(jī),發(fā)現(xiàn)死者居然都...
    沈念sama閱讀 93,397評(píng)論 3 395
  • 文/潘曉璐 我一進(jìn)店門畦韭,熙熙樓的掌柜王于貴愁眉苦臉地迎上來视卢,“玉大人,你說我怎么就攤上這事廊驼【莨” “怎么了?”我有些...
    開封第一講書人閱讀 165,345評(píng)論 0 356
  • 文/不壞的土叔 我叫張陵妒挎,是天一觀的道長(zhǎng)绳锅。 經(jīng)常有香客問我,道長(zhǎng)酝掩,這世上最難降的妖魔是什么鳞芙? 我笑而不...
    開封第一講書人閱讀 58,851評(píng)論 1 295
  • 正文 為了忘掉前任,我火速辦了婚禮期虾,結(jié)果婚禮上原朝,老公的妹妹穿的比我還像新娘。我一直安慰自己镶苞,他們只是感情好喳坠,可當(dāng)我...
    茶點(diǎn)故事閱讀 67,868評(píng)論 6 392
  • 文/花漫 我一把揭開白布。 她就那樣靜靜地躺著茂蚓,像睡著了一般壕鹉。 火紅的嫁衣襯著肌膚如雪。 梳的紋絲不亂的頭發(fā)上聋涨,一...
    開封第一講書人閱讀 51,688評(píng)論 1 305
  • 那天晾浴,我揣著相機(jī)與錄音,去河邊找鬼牍白。 笑死脊凰,一個(gè)胖子當(dāng)著我的面吹牛,可吹牛的內(nèi)容都是我干的茂腥。 我是一名探鬼主播狸涌,決...
    沈念sama閱讀 40,414評(píng)論 3 418
  • 文/蒼蘭香墨 我猛地睜開眼,長(zhǎng)吁一口氣:“原來是場(chǎng)噩夢(mèng)啊……” “哼础芍!你這毒婦竟也來了杈抢?” 一聲冷哼從身側(cè)響起,我...
    開封第一講書人閱讀 39,319評(píng)論 0 276
  • 序言:老撾萬榮一對(duì)情侶失蹤仑性,失蹤者是張志新(化名)和其女友劉穎惶楼,沒想到半個(gè)月后,有當(dāng)?shù)厝嗽跇淞掷锇l(fā)現(xiàn)了一具尸體诊杆,經(jīng)...
    沈念sama閱讀 45,775評(píng)論 1 315
  • 正文 獨(dú)居荒郊野嶺守林人離奇死亡歼捐,尸身上長(zhǎng)有42處帶血的膿包…… 初始之章·張勛 以下內(nèi)容為張勛視角 年9月15日...
    茶點(diǎn)故事閱讀 37,945評(píng)論 3 336
  • 正文 我和宋清朗相戀三年,在試婚紗的時(shí)候發(fā)現(xiàn)自己被綠了晨汹。 大學(xué)時(shí)的朋友給我發(fā)了我未婚夫和他白月光在一起吃飯的照片豹储。...
    茶點(diǎn)故事閱讀 40,096評(píng)論 1 350
  • 序言:一個(gè)原本活蹦亂跳的男人離奇死亡,死狀恐怖淘这,靈堂內(nèi)的尸體忽然破棺而出剥扣,到底是詐尸還是另有隱情巩剖,我是刑警寧澤,帶...
    沈念sama閱讀 35,789評(píng)論 5 346
  • 正文 年R本政府宣布钠怯,位于F島的核電站佳魔,受9級(jí)特大地震影響,放射性物質(zhì)發(fā)生泄漏晦炊。R本人自食惡果不足惜鞠鲜,卻給世界環(huán)境...
    茶點(diǎn)故事閱讀 41,437評(píng)論 3 331
  • 文/蒙蒙 一、第九天 我趴在偏房一處隱蔽的房頂上張望断国。 院中可真熱鬧贤姆,春花似錦、人聲如沸稳衬。這莊子的主人今日做“春日...
    開封第一講書人閱讀 31,993評(píng)論 0 22
  • 文/蒼蘭香墨 我抬頭看了看天上的太陽宋彼。三九已至弄砍,卻和暖如春,著一層夾襖步出監(jiān)牢的瞬間输涕,已是汗流浹背音婶。 一陣腳步聲響...
    開封第一講書人閱讀 33,107評(píng)論 1 271
  • 我被黑心中介騙來泰國(guó)打工, 沒想到剛下飛機(jī)就差點(diǎn)兒被人妖公主榨干…… 1. 我叫王不留莱坎,地道東北人衣式。 一個(gè)月前我還...
    沈念sama閱讀 48,308評(píng)論 3 372
  • 正文 我出身青樓,卻偏偏與公主長(zhǎng)得像檐什,于是被迫代替她去往敵國(guó)和親碴卧。 傳聞我的和親對(duì)象是個(gè)殘疾皇子,可洞房花燭夜當(dāng)晚...
    茶點(diǎn)故事閱讀 45,037評(píng)論 2 355