摘要:類(lèi)似的,如果我們想要調(diào)試擴(kuò)展,我們也需要擴(kuò)展源文件的調(diào)試符號(hào)信息。配置安裝插件這里我們將用來(lái)調(diào)試擴(kuò)展。配置輸入配置一個(gè)任務(wù),該任務(wù)會(huì)執(zhí)行,生成帶調(diào)試信息的擴(kuò)展文件。
Debugging NodeJS C++ addons using VS Code
之前筆者寫(xiě)了一篇 用NAN寫(xiě)一個(gè)nodejs的c++擴(kuò)展, 實(shí)際開(kāi)發(fā)過(guò)程中,肯定是有單步調(diào)試的需求。這里簡(jiǎn)單介紹用如何用vscode調(diào)試node.js c++擴(kuò)展。一般要調(diào)試某個(gè)程序,為了能清晰地看到調(diào)試的每一行代碼、調(diào)用的堆棧信息、變量名和函數(shù)名等信息,需要待調(diào)試程序地 調(diào)試符號(hào) 信息。比如我們?cè)谑褂肎CC編譯程序的時(shí)候,如果加上 -g 選項(xiàng)即可在編譯后的程序中保留所有的調(diào)試符號(hào)信息。假如我們有一個(gè)hello_world.c的源文件,我們可以通過(guò)gcc -g -o hello_world hello_world.c生成一個(gè)帶調(diào)試信息的hello_world程序。類(lèi)似的,如果我們想要調(diào)試node.js擴(kuò)展,我們也需要擴(kuò)展源文件的調(diào)試符號(hào)信息。
生成帶有調(diào)試信息的擴(kuò)展之前我們通過(guò)node-gyp來(lái)調(diào)用對(duì)應(yīng)的工具來(lái)編譯項(xiàng)目,想要生成調(diào)試符號(hào)信息也應(yīng)該從node-gyp的文檔入手,從node-gyp的command options部分可以看到node-gyp支持--debug選項(xiàng)。我們可以通過(guò)node-gyp rebuild --debug來(lái)生成帶有調(diào)試信息的node擴(kuò)展,如果不加--debug表示生成的是一個(gè)release擴(kuò)展。我們?cè)谠瓉?lái)項(xiàng)目的package.json文件的scripts部分中增加兩個(gè)任務(wù),如下:
執(zhí)行npm run rebuild會(huì)生成一個(gè)build/Release目錄。執(zhí)行npm run rebuild:dev會(huì)生成一個(gè)build/Debug目錄。
配置vscode vscode安裝lldb插件這里我們將用lldb來(lái)調(diào)試node擴(kuò)展。這里我們需要在vscode中安裝lldb擴(kuò)展。安裝的過(guò)程參考vscode-lldb ,這里不再贅述。
配置vscode taskCmd+Shift+P 輸入configure task配置一個(gè)任務(wù),該任務(wù)會(huì)執(zhí)行npm run rebuild:dev,生成帶調(diào)試信息的node擴(kuò)展文件。筆者的配置如下:
{ "version": "2.0.0", "tasks": [ { "type": "npm", "script": "rebuild:dev", "problemMatcher": [] } ] }配置vscode 調(diào)試
點(diǎn)擊debug按鈕之后,下面在launch.json中配置調(diào)試node擴(kuò)展的任務(wù),注意在配置的時(shí)候增加一個(gè)preLaunchTask任務(wù),該任務(wù)就是我們上一步配置的。最終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可以看到整個(gè)調(diào)試的過(guò)程為:vscode插件調(diào)用lldb,啟動(dòng)nodejs去執(zhí)行/absolute/path/to/your/index.js,在js文件中會(huì)調(diào)用node擴(kuò)展,而該部分?jǐn)U展已經(jīng)包含了調(diào)試信息,故而可以用于調(diào)試。
調(diào)試node擴(kuò)展這里為了調(diào)試node擴(kuò)展,我們寫(xiě)了一個(gè)demo用于引用Debug版本的node擴(kuò)展,如下:
const addon = require("../build/Debug/sum") console.log(addon.sum(1,2))
項(xiàng)目地址:https://github.com/warjiang/d...
文章版權(quán)歸作者所有,未經(jīng)允許請(qǐng)勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。
轉(zhuǎn)載請(qǐng)注明本文地址:http://specialneedsforspecialkids.com/yun/100956.html
摘要:編碼規(guī)范是獨(dú)角獸公司內(nèi)部的編碼規(guī)范,該項(xiàng)目是上很受歡迎的一個(gè)開(kāi)源項(xiàng)目,在前端開(kāi)發(fā)中使用廣泛,本文的配置規(guī)則就是以編碼規(guī)范和編碼規(guī)范作為基礎(chǔ)的。 更新時(shí)間:2019-01-22React.js create-react-app 項(xiàng)目 + VSCode 編輯器 + ESLint 代碼檢查工具 + Airbnb 編碼規(guī)范 前言 為什么要使用 ESLint 在項(xiàng)目開(kāi)發(fā)過(guò)程中,編寫(xiě)符合團(tuán)隊(duì)編碼規(guī)...
摘要:插件提供內(nèi)容,負(fù)責(zé)渲染。增量更新,盡可能地減少重新渲染長(zhǎng)時(shí)間運(yùn)行的任務(wù)應(yīng)該支持,并可以取消插件能夠正確地處理對(duì)象的生命周期。使用了模式,運(yùn)行可以將這個(gè)對(duì)象銷(xiāo)毀。 使用 命令行使用 幫助:code --help 使用已經(jīng)打開(kāi)的窗口來(lái)打開(kāi)文件:code -r 打開(kāi)文件并滾動(dòng)到特定行:code -r -g package.json:128 比較兩個(gè)文件:code -r -d a.tx...
摘要:有鑒于此,本文以未安裝工具軟件的計(jì)算機(jī)未激活的愛(ài)智設(shè)備為例,實(shí)戰(zhàn)解說(shuō)零基礎(chǔ)小白的愛(ài)智開(kāi)發(fā)過(guò)程。愛(ài)智設(shè)備斷開(kāi)互聯(lián)網(wǎng)也可以運(yùn)行,但本文中的開(kāi)發(fā)部署等功能無(wú)法操作。 【本...
摘要:軟件跨平臺(tái)支持以及,運(yùn)行流暢,可謂是微軟的良心之作微軟有這個(gè)宇宙最強(qiáng),自然也不會(huì)弱宇宙最強(qiáng)編輯器說(shuō)到代碼編輯器,我們有必要提一提還有。 原文鏈接:VS Code上手與超實(shí)用插件安利 工欲善其事必先利其器 Visual Studio Code (簡(jiǎn)稱(chēng) VS Code / VSC) 是一款免費(fèi)開(kāi)源的現(xiàn)代化輕量級(jí)代碼編輯器,支持幾乎所有主流的開(kāi)發(fā)語(yǔ)言的語(yǔ)法高亮、智能代碼補(bǔ)全、自定義熱鍵、括號(hào)...
摘要:接下來(lái)的內(nèi)容將從以下幾方面進(jìn)行展開(kāi)調(diào)試前端代碼調(diào)試通過(guò)啟動(dòng)的服務(wù)器要使用的調(diào)試功能,首先就得配置文件。調(diào)試前端代碼通過(guò)調(diào)試前端代碼主要依賴(lài)于一個(gè)插件,該插件主要利用所開(kāi)放出來(lái)的接口來(lái)實(shí)現(xiàn)對(duì)其渲染的頁(yè)面進(jìn)行調(diào)試。 本文最初發(fā)布于我的個(gè)人博客:咀嚼之味 Visual Studio Code (以下簡(jiǎn)稱(chēng) vscode) 如今已經(jīng)代替 Sublime,成為前端工程師們最喜愛(ài)的代碼編輯器。它作為...
閱讀 1146·2021-11-23 10:04
閱讀 2406·2021-11-22 15:29
閱讀 2772·2021-11-19 09:40
閱讀 721·2021-09-22 15:26
閱讀 2123·2019-08-29 16:27
閱讀 2490·2019-08-29 16:10
閱讀 1924·2019-08-29 15:43
閱讀 3281·2019-08-29 12:43