天天看點

「編譯工具」VS Code混合調試 C/C++ 和 Node.js單獨調試C/C++代碼混合調試C/C++和Node.js

目前經常使用的ide工具有如下幾種:

vscode,各種平台下的使用者體驗都是極好的,代碼主題和顯示效果都是最佳的,而且輕量級的,資源消耗少;另外支援多種語言的開發,隻需安裝相應的插件,安裝、配置、學習的成本都是很低的。

「編譯工具」VS Code混合調試 C/C++ 和 Node.js單獨調試C/C++代碼混合調試C/C++和Node.js

clion,jetbrains公司推出的一款專為開發c/c++所設計的跨平台ide,不得不說jetbrains出的産品就是讓人信賴,使用者體驗也是很不錯的,我喜歡使用clion調試cmake工程,隻需簡單的引入工程就可正常的開發調試,還是很爽歪歪的。另外使用過一段時間intellij idea開發過java程式,真的開發效率大大提升,真的是java程式員的神兵利器!大愛!不過因為是基于java虛機jdk開發運作的,是以資源消耗較多,這點體驗不是很好。

visual studio,經常使用vs在windows下面調試大型程式,對于一個含有很多工程的大型程式來說,vs毋庸置疑是最佳的開發和調試工具,對于c++的初學者和開發者來說都是很不錯的選擇。就像一個小夥伴曾經說過的那樣,使用vs追蹤死鎖問題都是非常友善的。對于打算開始入手學習webrtc的童鞋還是建議從windows vs工程開始搞起。

對于經常多語言開發的童鞋,vscode絕對是明智的選擇,我使用最多的還是c++、node.js的混合開發調試以及go語言的開發,而且vscode對與docker的支援也是體驗很爽的。下面主要講一講 「centos7下vscode混合調試c/c++和node.js工程」 。

本文以node.js開發hello world addon為例

node.js基于gyp(generate your projects)建構c/c++插件的工具是node-gyp,它可以将c++插件代碼編譯成.node檔案,其實質是一個動态庫,可以自動生成make、cmake工程對應的makefile和cmakelist.txt檔案。

launch.json檔案如下:

這樣就可以在start debugging的時候,會依據launch.json執行,當給c++代碼标記斷點後,程式運作到斷點處就會停住。此時js代碼不處于調試狀态。另外使用lldb插件也可以起到相同的效果,不過需安裝lldb插件:

「編譯工具」VS Code混合調試 C/C++ 和 Node.js單獨調試C/C++代碼混合調試C/C++和Node.js

此時隻需将type改為lldb即可。lldb是llvm的一個類似gdb的實作。這個插件是用來支援llvm編譯器的。

先啟動node.js工程開始調試後,接着啟動c/c++調試器,attach到相應的程序上,這樣在深入js代碼的同時,還可以調試c++ addons [1] 部分的代碼,了解底層的調用邏輯。

配置中的第一項launch是啟動node.js代碼調試,調試js代碼,需要先将debugger面闆切換到launch。配置中的第二項是attach c/c++ addon,把debug面闆的debugger切換到attach c/c++ addon,接着再啟動即可。這裡的request: "attach", 是讓lldb連結到nodejs程序中去debug,下面的pid字段就是啟動後,會彈出下拉框,然後選擇要連結的程序。一旦連結成功,就可以對 c/c++ 代碼斷點了。

遇到的問題:

centos7下直接啟動code,ui界面一片白,菜單和視窗都無法渲染

解決方法: code --disable-gpu

預設情況下code以啟動gpu的方式去渲染,虛拟機下工作不正常,disable後正常工作。

安裝lldb插件,不能以安裝數排名安裝native debug,直接安裝codelldb即可。

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

安裝lldb插件後報錯:

「編譯工具」VS Code混合調試 C/C++ 和 Node.js單獨調試C/C++代碼混合調試C/C++和Node.js

解決方法:

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

「編譯工具」VS Code混合調試 C/C++ 和 Node.js單獨調試C/C++代碼混合調試C/C++和Node.js

解決方法: sudo yum install python3

好了,本篇文章就為大家介紹到這裡,覺得内容對你有用的話,記得支援一下喲!

如果你也喜歡程式設計,想好c/c++的話!如果你也想讓自己成為一個具有真材實料的厲害的程式員,不妨從現在開始!

程式設計學習書籍分享:

「編譯工具」VS Code混合調試 C/C++ 和 Node.js單獨調試C/C++代碼混合調試C/C++和Node.js

程式設計學習視訊分享:

「編譯工具」VS Code混合調試 C/C++ 和 Node.js單獨調試C/C++代碼混合調試C/C++和Node.js

整理分享(多年學習的源碼、項目實戰視訊、項目筆記,基礎入門教程)

歡迎轉行和學習程式設計的夥伴,利用更多的資料學習成長比自己琢磨更快哦!

對于c/c++感興趣可以關注小編在背景私信我:【程式設計交流】一起來學習哦!可以領取一些c/c++的項目學習視訊資料哦!已經設定好了關鍵詞自動回複,自動領取就好了!