最美情侣中文字幕电影,在线麻豆精品传媒,在线网站高清黄,久久黄色视频

歡迎光臨散文網(wǎng) 會(huì)員登陸 & 注冊(cè)

【編譯工具】VS Code混合調(diào)試 C/C++ 和 Node.js

2021-11-04 14:39 作者:C語言編程__Plus  | 我要投稿

目前經(jīng)常使用的IDE工具有如下幾種:

VSCode,各種平臺(tái)下的用戶體驗(yàn)都是極好的,代碼主題和顯示效果都是最佳的,而且輕量級(jí)的,資源消耗少;另外支持多種語言的開發(fā),只需安裝相應(yīng)的插件,安裝、配置、學(xué)習(xí)的成本都是很低的。


CLion,Jetbrains公司推出的一款專為開發(fā)C/C++所設(shè)計(jì)的跨平臺(tái)IDE,不得不說Jetbrains出的產(chǎn)品就是讓人信賴,用戶體驗(yàn)也是很不錯(cuò)的,我喜歡使用clion調(diào)試cmake工程,只需簡(jiǎn)單的引入工程就可正常的開發(fā)調(diào)試,還是很爽歪歪的。另外使用過一段時(shí)間Intellij IDEA開發(fā)過JAVA程序,真的開發(fā)效率大大提升,真的是Java程序員的神兵利器!大愛!不過因?yàn)槭腔贘ava虛機(jī)JDK開發(fā)運(yùn)行的,所以資源消耗較多,這點(diǎn)體驗(yàn)不是很好。

Visual studio,經(jīng)常使用VS在Windows下面調(diào)試大型程序,對(duì)于一個(gè)含有很多工程的大型程序來說,VS毋庸置疑是最佳的開發(fā)和調(diào)試工具,對(duì)于C++的初學(xué)者和開發(fā)者來說都是很不錯(cuò)的選擇。就像一個(gè)小伙伴曾經(jīng)說過的那樣,使用VS追蹤死鎖問題都是非常方便的。對(duì)于打算開始入手學(xué)習(xí)WebRTC的童鞋還是建議從Windows VS工程開始搞起。

對(duì)于經(jīng)常多語言開發(fā)的童鞋,VSCode絕對(duì)是明智的選擇,我使用最多的還是C++、Node.js的混合開發(fā)調(diào)試以及go語言的開發(fā),而且VSCode對(duì)與docker的支持也是體驗(yàn)很爽的。下面主要講一講?「Centos7下VSCode混合調(diào)試C/C++和Node.js工程」?。

本文以node.js開發(fā)Hello world addon為例

Node.js基于GYP(Generate Your Projects)構(gòu)建C/C++插件的工具是node-gyp,它可以將C++插件代碼編譯成.node文件,其實(shí)質(zhì)是一個(gè)動(dòng)態(tài)庫,可以自動(dòng)生成make、cmake工程對(duì)應(yīng)的Makefile和CMakeList.txt文件。

單獨(dú)調(diào)試C/C++代碼

launch.json文件如下:

這樣就可以在Start Debugging的時(shí)候,會(huì)依據(jù)launch.json執(zhí)行,當(dāng)給C++代碼標(biāo)記斷點(diǎn)后,程序運(yùn)行到斷點(diǎn)處就會(huì)停住。此時(shí)js代碼不處于調(diào)試狀態(tài)。另外使用lldb插件也可以起到相同的效果,不過需安裝lldb插件:


此時(shí)只需將type改為lldb即可。lldb是llvm的一個(gè)類似gdb的實(shí)現(xiàn)。這個(gè)插件是用來支持llvm編譯器的。

混合調(diào)試C/C++和Node.js

先啟動(dòng)Node.js工程開始調(diào)試后,接著啟動(dòng)C/C++調(diào)試器,Attach到相應(yīng)的進(jìn)程上,這樣在深入js代碼的同時(shí),還可以調(diào)試C++ Addons?[1]?部分的代碼,了解底層的調(diào)用邏輯。

launch.json文件如下:

配置中的第一項(xiàng)Launch是啟動(dòng)node.js代碼調(diào)試,調(diào)試JS代碼,需要先將Debugger面板切換到Launch。配置中的第二項(xiàng)是Attach C/C++ Addon,把Debug面板的Debugger切換到Attach C/C++ Addon,接著再啟動(dòng)即可。這里的request: "attach", 是讓lldb鏈接到nodejs進(jìn)程中去Debug,下面的pid字段就是啟動(dòng)后,會(huì)彈出下拉框,然后選擇要鏈接的進(jìn)程。一旦鏈接成功,就可以對(duì) C/C++ 代碼斷點(diǎn)了。

遇到的問題:

centos7下直接啟動(dòng)code,UI界面一片白,菜單和窗口都無法渲染

解決方法:?code --disable-gpu

默認(rèn)情況下code以啟動(dòng)gpu的方式去渲染,虛擬機(jī)下工作不正常,disable后正常工作。

安裝lldb插件,不能以安裝數(shù)排名安裝Native Debug,直接安裝CodeLLDB即可。

使用cppdb attach工作不正常,而且需要processId和program,修改成lldb和pid的方式后工作正常。

安裝lldb插件后報(bào)錯(cuò):


解決方法:

更新glib后依然遇到如下問題:


解決方法:?sudo yum install python3

好了,本篇文章就為大家介紹到這里,覺得內(nèi)容對(duì)你有用的話,記得支持一下喲!

如果你也喜歡編程,想好C/C++的話!如果你也想讓自己成為一個(gè)具有真材實(shí)料的厲害的程序員,不妨從現(xiàn)在開始!

微信公眾號(hào):C語言編程學(xué)習(xí)基地

C語言零基礎(chǔ)入門教程(83集全)

整理分享(多年學(xué)習(xí)的源碼、項(xiàng)目實(shí)戰(zhàn)視頻、項(xiàng)目筆記,基礎(chǔ)入門教程)

歡迎轉(zhuǎn)行和學(xué)習(xí)編程的伙伴,利用更多的資料學(xué)習(xí)成長(zhǎng)比自己琢磨更快哦!



【編譯工具】VS Code混合調(diào)試 C/C++ 和 Node.js的評(píng)論 (共 條)

分享到微博請(qǐng)遵守國家法律
秦安县| 水城县| 延长县| 陈巴尔虎旗| 麟游县| 远安县| 嘉黎县| 资阳市| 舟曲县| 水城县| 监利县| 绵竹市| 永胜县| 炉霍县| 界首市| 临清市| 富源县| 阜新| 四子王旗| 樟树市| 安陆市| 扶风县| 泉州市| 岐山县| 手机| 菏泽市| 崇左市| 高陵县| 四子王旗| 清镇市| 涡阳县| 井研县| 泸定县| 峡江县| 思南县| 双峰县| 凤山市| 资兴市| 大连市| 辽中县| 扎兰屯市|