成人国产在线小视频_日韩寡妇人妻调教在线播放_色成人www永久在线观看_2018国产精品久久_亚洲欧美高清在线30p_亚洲少妇综合一区_黄色在线播放国产_亚洲另类技巧小说校园_国产主播xx日韩_a级毛片在线免费

資訊專欄INFORMATION COLUMN

vscode調(diào)試node.js c++擴展

王偉廷 / 1764人閱讀

摘要:類似的,如果我們想要調(diào)試擴展,我們也需要擴展源文件的調(diào)試符號信息。配置安裝插件這里我們將用來調(diào)試擴展。配置輸入配置一個任務(wù),該任務(wù)會執(zhí)行,生成帶調(diào)試信息的擴展文件。

Debugging NodeJS C++ addons using VS Code

之前筆者寫了一篇 用NAN寫一個nodejs的c++擴展, 實際開發(fā)過程中,肯定是有單步調(diào)試的需求。這里簡單介紹用如何用vscode調(diào)試node.js c++擴展。一般要調(diào)試某個程序,為了能清晰地看到調(diào)試的每一行代碼、調(diào)用的堆棧信息、變量名和函數(shù)名等信息,需要待調(diào)試程序地 調(diào)試符號 信息。比如我們在使用GCC編譯程序的時候,如果加上 -g 選項即可在編譯后的程序中保留所有的調(diào)試符號信息。假如我們有一個hello_world.c的源文件,我們可以通過gcc -g -o hello_world hello_world.c生成一個帶調(diào)試信息的hello_world程序。類似的,如果我們想要調(diào)試node.js擴展,我們也需要擴展源文件的調(diào)試符號信息。

生成帶有調(diào)試信息的擴展

之前我們通過node-gyp來調(diào)用對應(yīng)的工具來編譯項目,想要生成調(diào)試符號信息也應(yīng)該從node-gyp的文檔入手,從node-gyp的command options部分可以看到node-gyp支持--debug選項。我們可以通過node-gyp rebuild --debug來生成帶有調(diào)試信息的node擴展,如果不加--debug表示生成的是一個release擴展。我們在原來項目的package.json文件的scripts部分中增加兩個任務(wù),如下:

執(zhí)行npm run rebuild會生成一個build/Release目錄。執(zhí)行npm run rebuild:dev會生成一個build/Debug目錄。

配置vscode vscode安裝lldb插件

這里我們將用lldb來調(diào)試node擴展。這里我們需要在vscode中安裝lldb擴展。安裝的過程參考vscode-lldb ,這里不再贅述。

配置vscode task

Cmd+Shift+P 輸入configure task配置一個任務(wù),該任務(wù)會執(zhí)行npm run rebuild:dev,生成帶調(diào)試信息的node擴展文件。筆者的配置如下:

{
    "version": "2.0.0",
    "tasks": [
        {
            "type": "npm",
            "script": "rebuild:dev",
            "problemMatcher": []
        }
    ]
}
配置vscode 調(diào)試

點擊debug按鈕之后,下面在launch.json中配置調(diào)試node擴展的任務(wù),注意在配置的時候增加一個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可以看到整個調(diào)試的過程為:vscode插件調(diào)用lldb,啟動nodejs去執(zhí)行/absolute/path/to/your/index.js,在js文件中會調(diào)用node擴展,而該部分擴展已經(jīng)包含了調(diào)試信息,故而可以用于調(diào)試。

調(diào)試node擴展

這里為了調(diào)試node擴展,我們寫了一個demo用于引用Debug版本的node擴展,如下:

const addon = require("../build/Debug/sum")
console.log(addon.sum(1,2))

項目地址:https://github.com/warjiang/d...

文章版權(quán)歸作者所有,未經(jīng)允許請勿轉(zhuǎn)載,若此文章存在違規(guī)行為,您可以聯(lián)系管理員刪除。

轉(zhuǎn)載請注明本文地址:http://systransis.cn/yun/100956.html

相關(guān)文章

  • 在 React-CRA 應(yīng)用中配合 VSCode 使用 ESLint 實踐前端代碼規(guī)范

    摘要:編碼規(guī)范是獨角獸公司內(nèi)部的編碼規(guī)范,該項目是上很受歡迎的一個開源項目,在前端開發(fā)中使用廣泛,本文的配置規(guī)則就是以編碼規(guī)范和編碼規(guī)范作為基礎(chǔ)的。 更新時間:2019-01-22React.js create-react-app 項目 + VSCode 編輯器 + ESLint 代碼檢查工具 + Airbnb 編碼規(guī)范 前言 為什么要使用 ESLint 在項目開發(fā)過程中,編寫符合團隊編碼規(guī)...

    Hujiawei 評論0 收藏0
  • FE.BASE-vscode使用、原理、插件開發(fā)筆記

    摘要:插件提供內(nèi)容,負責(zé)渲染。增量更新,盡可能地減少重新渲染長時間運行的任務(wù)應(yīng)該支持,并可以取消插件能夠正確地處理對象的生命周期。使用了模式,運行可以將這個對象銷毀。 使用 命令行使用 幫助:code --help 使用已經(jīng)打開的窗口來打開文件:code -r 打開文件并滾動到特定行:code -r -g package.json:128 比較兩個文件:code -r -d a.tx...

    MingjunYang 評論0 收藏0
  • 2021愛智先行者—(2)零基礎(chǔ)APP開發(fā)實例

    摘要:有鑒于此,本文以未安裝工具軟件的計算機未激活的愛智設(shè)備為例,實戰(zhàn)解說零基礎(chǔ)小白的愛智開發(fā)過程。愛智設(shè)備斷開互聯(lián)網(wǎng)也可以運行,但本文中的開發(fā)部署等功能無法操作。 【本...

    paney129 評論0 收藏0
  • VS Code上手與超實用插件安利

    摘要:軟件跨平臺支持以及,運行流暢,可謂是微軟的良心之作微軟有這個宇宙最強,自然也不會弱宇宙最強編輯器說到代碼編輯器,我們有必要提一提還有。 原文鏈接:VS Code上手與超實用插件安利 工欲善其事必先利其器 Visual Studio Code (簡稱 VS Code / VSC) 是一款免費開源的現(xiàn)代化輕量級代碼編輯器,支持幾乎所有主流的開發(fā)語言的語法高亮、智能代碼補全、自定義熱鍵、括號...

    miracledan 評論0 收藏0
  • Visual Studio Code 前端調(diào)試不完全指南

    摘要:接下來的內(nèi)容將從以下幾方面進行展開調(diào)試前端代碼調(diào)試通過啟動的服務(wù)器要使用的調(diào)試功能,首先就得配置文件。調(diào)試前端代碼通過調(diào)試前端代碼主要依賴于一個插件,該插件主要利用所開放出來的接口來實現(xiàn)對其渲染的頁面進行調(diào)試。 本文最初發(fā)布于我的個人博客:咀嚼之味 Visual Studio Code (以下簡稱 vscode) 如今已經(jīng)代替 Sublime,成為前端工程師們最喜愛的代碼編輯器。它作為...

    dongfangyiyu 評論0 收藏0

發(fā)表評論

0條評論

王偉廷

|高級講師

TA的文章

閱讀更多
最新活動
閱讀需要支付1元查看
<