摘要:类似的,如果我们想要调试扩展,我们也需要扩展源文件的调试符号信息。配置安装插件这里我们将用来调试扩展。配置输入配置一个任务,该任务会执行,生成带调试信息的扩展文件。
Debugging NodeJS C++ addons using VS Code
之前笔者写了一篇 用NAN写一个nodejs的c++扩展, 实际开发过程中,肯定是有单步调试的需求。这里简单介绍用如何用vscode调试node.js c++扩展。一般要调试某个程序,为了能清晰地看到调试的每一行代码、调用的堆栈信息、变量名和函数名等信息,需要待调试程序地 调试符号 信息。比如我们在使用GCC编译程序的时候,如果加上 -g 选项即可在编译后的程序中保留所有的调试符号信息。假如我们有一个hello_world.c的源文件,我们可以通过gcc -g -o hello_world hello_world.c生成一个带调试信息的hello_world程序。类似的,如果我们想要调试node.js扩展,我们也需要扩展源文件的调试符号信息。
生成带有调试信息的扩展之前我们通过node-gyp来调用对应的工具来编译项目,想要生成调试符号信息也应该从node-gyp的文档入手,从node-gyp的command options部分可以看到node-gyp支持--debug选项。我们可以通过node-gyp rebuild --debug来生成带有调试信息的node扩展,如果不加--debug表示生成的是一个release扩展。我们在原来项目的package.json文件的scripts部分中增加两个任务,如下:
执行npm run rebuild会生成一个build/Release目录。执行npm run rebuild:dev会生成一个build/Debug目录。
配置vscode vscode安装lldb插件这里我们将用lldb来调试node扩展。这里我们需要在vscode中安装lldb扩展。安装的过程参考vscode-lldb ,这里不再赘述。
配置vscode taskCmd+Shift+P 输入configure task配置一个任务,该任务会执行npm run rebuild:dev,生成带调试信息的node扩展文件。笔者的配置如下:
{ "version": "2.0.0", "tasks": [ { "type": "npm", "script": "rebuild:dev", "problemMatcher": [] } ] }配置vscode 调试
点击debug按钮之后,下面在launch.json中配置调试node扩展的任务,注意在配置的时候增加一个preLaunchTask任务,该任务就是我们上一步配置的。最终luanch.json配置如下:
{ "version": "0.2.0", "configurations": [{ "type": "lldb", "request": "launch", "name": "Launch Program", "preLaunchTask": "npm: build:dev", "program": "/absolute/path/to/node", "args": [ "/absolute/path/to/your/index.js" ] }] }
从launch.json可以看到整个调试的过程为:vscode插件调用lldb,启动nodejs去执行/absolute/path/to/your/index.js,在js文件中会调用node扩展,而该部分扩展已经包含了调试信息,故而可以用于调试。
调试node扩展这里为了调试node扩展,我们写了一个demo用于引用Debug版本的node扩展,如下:
const addon = require("../build/Debug/sum") console.log(addon.sum(1,2))
项目地址:https://github.com/warjiang/d...
文章版权归作者所有,未经允许请勿转载,若此文章存在违规行为,您可以联系管理员删除。
转载请注明本文地址:https://www.ucloud.cn/yun/100956.html
摘要:编码规范是独角兽公司内部的编码规范,该项目是上很受欢迎的一个开源项目,在前端开发中使用广泛,本文的配置规则就是以编码规范和编码规范作为基础的。 更新时间:2019-01-22React.js create-react-app 项目 + VSCode 编辑器 + ESLint 代码检查工具 + Airbnb 编码规范 前言 为什么要使用 ESLint 在项目开发过程中,编写符合团队编码规...
摘要:插件提供内容,负责渲染。增量更新,尽可能地减少重新渲染长时间运行的任务应该支持,并可以取消插件能够正确地处理对象的生命周期。使用了模式,运行可以将这个对象销毁。 使用 命令行使用 帮助:code --help 使用已经打开的窗口来打开文件:code -r 打开文件并滚动到特定行:code -r -g package.json:128 比较两个文件:code -r -d a.tx...
摘要:有鉴于此,本文以未安装工具软件的计算机未激活的爱智设备为例,实战解说零基础小白的爱智开发过程。爱智设备断开互联网也可以运行,但本文中的开发部署等功能无法操作。 【本...
摘要:软件跨平台支持以及,运行流畅,可谓是微软的良心之作微软有这个宇宙最强,自然也不会弱宇宙最强编辑器说到代码编辑器,我们有必要提一提还有。 原文链接:VS Code上手与超实用插件安利 工欲善其事必先利其器 Visual Studio Code (简称 VS Code / VSC) 是一款免费开源的现代化轻量级代码编辑器,支持几乎所有主流的开发语言的语法高亮、智能代码补全、自定义热键、括号...
摘要:接下来的内容将从以下几方面进行展开调试前端代码调试通过启动的服务器要使用的调试功能,首先就得配置文件。调试前端代码通过调试前端代码主要依赖于一个插件,该插件主要利用所开放出来的接口来实现对其渲染的页面进行调试。 本文最初发布于我的个人博客:咀嚼之味 Visual Studio Code (以下简称 vscode) 如今已经代替 Sublime,成为前端工程师们最喜爱的代码编辑器。它作为...
阅读 1116·2021-11-23 10:04
阅读 2382·2021-11-22 15:29
阅读 2671·2021-11-19 09:40
阅读 698·2021-09-22 15:26
阅读 2098·2019-08-29 16:27
阅读 2469·2019-08-29 16:10
阅读 1886·2019-08-29 15:43
阅读 3251·2019-08-29 12:43