摘要:類似的,如果我們想要調試擴展,我們也需要擴展源文件的調試符號信息。配置安裝插件這里我們將用來調試擴展。配置輸入配置一個任務,該任務會執行,生成帶調試信息的擴展文件。
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...
文章版權歸作者所有,未經允許請勿轉載,若此文章存在違規行為,您可以聯系管理員刪除。
轉載請注明本文地址:http://m.specialneedsforspecialkids.com/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,成為前端工程師們最喜愛的代碼編輯器。它作為...
閱讀 1154·2021-11-23 10:04
閱讀 2415·2021-11-22 15:29
閱讀 2814·2021-11-19 09:40
閱讀 733·2021-09-22 15:26
閱讀 2131·2019-08-29 16:27
閱讀 2499·2019-08-29 16:10
閱讀 1932·2019-08-29 15:43
閱讀 3287·2019-08-29 12:43