百度360必应搜狗淘宝本站头条
当前位置:网站首页 > 技术分类 > 正文

VSCode混合调试 C/C++ 和Node.js,方法指导

ztj100 2024-11-11 15:16 15 浏览 0 评论

引言

欲善其事必先利其器也!

目前经常使用的IDE工具有如下几种:


Visual studio,经常使用VS在Windows下面调试大型程序,对于一个含有很多工程的大型程序来说,VS毋庸置疑是最佳的开发和调试工具,对于C++的初学者和开发者来说都是很不错的选择。就像一个小伙伴曾经说过的那样,使用VS追踪死锁问题都是非常方便的。对于打算开始入手学习WebRTC的童鞋还是建议从Windows VS工程开始搞起。

VSCode,各种平台下的用户体验都是极好的,代码主题和显示效果都是最佳的,而且轻量级的,资源消耗少;另外支持多种语言的开发,只需安装相应的插件,安装、配置、学习的成本都是很低的。

CLion,Jetbrains公司推出的一款专为开发C/C++所设计的跨平台IDE,不得不说Jetbrains出的产品就是让人信赖,用户体验也是很不错的,我喜欢使用clion调试cmake工程,只需简单的引入工程就可正常的开发调试,还是很爽歪歪的。另外使用过一段时间Intellij IDEA开发过JAVA程序,真的开发效率大大提升,真的是Java程序员的神兵利器!大爱!不过因为是基于Java虚机JDK开发运行的,所以资源消耗较多,这点体验不是很好。


对于经常多语言开发的童鞋,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文件。


单独调试C/C++代码

launch.json文件如下:


这样就可以在Start Debugging的时候,会依据launch.json执行,当给C++代码标记断点后,程序运行到断点处就会停住。此时js代码不处于调试状态。另外使用lldb插件也可以起到相同的效果,不过需安装lldb插件:

此时只需将type改为lldb即可。lldb是llvm的一个类似gdb的实现。这个插件是用来支持llvm编译器的。


混合调试C/C++和Node.js

先启动Node.js工程开始调试后,接着启动C/C++调试器,Attach到相应的进程上,这样在深入js代码的同时,还可以调试C++ Addons[1]部分的代码,了解底层的调用逻辑。

launch.json文件如下:


配置中的第一项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插件后报错:


解决方法:


更新glib后依然遇到如下问题:


解决方法:sudo yum install python3

文章就分享到这里啦!欢迎大家拍砖留言,分享你感兴趣的话题!

另外如果你想更好的提升你的编程能力,学好C语言C++编程!弯道超车,快人一步!

编程学习软件分享:

编程学习视频分享:


分享(源码、项目实战视频、项目笔记,基础入门教程)

欢迎转行和学习编程的伙伴,利用更多的资料学习成长比自己琢磨更快哦!

C语言C++编程学习交流圈子,点击下方【了解更多】获取更多学习资料哦~

相关推荐

Vue3非兼容变更——函数式组件(vue 兼容)

在Vue2.X中,函数式组件有两个主要应用场景:作为性能优化,因为它们的初始化速度比有状态组件快得多;返回多个根节点。然而在Vue3.X中,有状态组件的性能已经提高到可以忽略不计的程度。此外,有状态组...

利用vue.js进行组件化开发,一学就会(一)

组件原理/组成组件(Component)扩展HTML元素,封装可重用的代码,核心目标是为了可重用性高,减少重复性的开发。组件预先定义好行为的ViewModel类。代码按照template\styl...

Vue3 新趋势:10 个最强 X 操作!(vue.3)

Vue3为前端开发带来了诸多革新,它不仅提升了性能,还提供了...

总结 Vue3 组件管理 12 种高级写法,灵活使用才能提高效率

SFC单文件组件顾名思义,就是一个.vue文件只写一个组件...

前端流行框架Vue3教程:17. _组件数据传递

_组件数据传递我们之前讲解过了组件之间的数据传递,...

前端流行框架Vue3教程:14. 组件传递Props效验

组件传递Props效验Vue组件可以更细致地声明对传入的props的校验要求...

前端流行框架Vue3教程:25. 组件保持存活

25.组件保持存活当使用...

5 个被低估的 Vue3 实战技巧,让你的项目性能提升 300%?

前端圈最近都在卷性能优化和工程化,你还在用老一套的Vue3开发方法?作为摸爬滚打多年的老前端,今天就把私藏的几个Vue3实战技巧分享出来,帮你在开发效率、代码质量和项目性能上实现弯道超车!一、...

绝望!Vue3 组件频繁崩溃?7 个硬核技巧让性能暴涨 400%!

前端的兄弟姐妹们五一假期快乐,谁还没在Vue3项目上栽过跟头?满心欢喜写好的组件,一到实际场景就频频崩溃,页面加载慢得像蜗牛,操作卡顿到让人想砸电脑。用户疯狂吐槽,领导脸色难看,自己改代码改到怀疑...

前端流行框架Vue3教程:15. 组件事件

组件事件在组件的模板表达式中,可以直接使用...

Vue3,看这篇就够了(vue3 从入门到实战)

一、前言最近很多技术网站,讨论的最多的无非就是Vue3了,大多数都是CompositionAPI和基于Proxy的原理分析。但是今天想着跟大家聊聊,Vue3对于一个低代码平台的前端更深层次意味着什么...

前端流行框架Vue3教程:24.动态组件

24.动态组件有些场景会需要在两个组件间来回切换,比如Tab界面...

前端流行框架Vue3教程:12. 组件的注册方式

组件的注册方式一个Vue组件在使用前需要先被“注册”,这样Vue才能在渲染模板时找到其对应的实现。组件注册有两种方式:全局注册和局部注册...

焦虑!Vue3 组件频繁假死?6 个奇招让页面流畅度狂飙 500%!

前端圈的朋友们,谁还没在Vue3项目上踩过性能的坑?满心期待开发出的组件,一到高并发场景就频繁假死,用户反馈页面点不动,产品经理追着问进度,自己调试到心态炸裂!别以为这是个例,不少人在电商大促、数...

前端流行框架Vue3教程:26. 异步组件

根据上节课的代码,我们在切换到B组件的时候,发现并没有网络请求:异步组件:...

取消回复欢迎 发表评论: