美文网首页
Nodejs之debug

Nodejs之debug

作者: 黑曼巴yk | 来源:发表于2019-10-17 10:32 被阅读0次

    chrome浏览器调试

    使用 --inspect开关进行调试。一个Nodejs进程开始侦听调试客户端,默认情况下侦听127.0.0.1:9229的域名和端口号

    --inspect 和--inspect-brk的区别是--inspect-brk默认会在第一行代码进行断点

    在chrome浏览器输入chrome//inspect

    debug
    调试时候屏蔽node基础库代码

    我们调试的时候并不希望调试到基础库(jquery,node)的代码。chrome也提供了这样的功能blackbox。Blackbox允许屏蔽指定js文件,这样调试就可以绕过它们了

    image.png
    临时保存

    直接在chrome浏览器修改,ctrl+s保存。可以自动生效

    image.png
    其他打开方式

    格式devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/e9f999f7-351b-4fcb-a9ce-0bcbf03a81c3
    后面那段ws=xxx,是执行了--inspect的返回结果。

    image.png

    vscode

    nodejs启动程序

    {
                "type": "node",
                "request": "launch",
                "name": "启动程序",
                "autoAttachChildProcesses": true,
                "program": "${file}"
    }
    

    附加在某个进程上

    如果程序启动了,或者我们想debugger某个子进程

    {
                "type": "node",
                "request": "attach",
                "name": "Attach by Process ID",
                "processId": "${command:PickProcess}"
    }
    

    附加在某个已经打开的端口

    应用程序以 --inspect打开。比如:node --inspect ./server.js
    可以看到输出信息

    ➜  cfork git:(master) ✗ node --inspect ./server.js
    Debugger listening on ws://127.0.0.1:9229/930fe957-158c-4fa0-ae7d-2046c45a47f6
    For help see https://nodejs.org/en/docs/inspector
    

    这里我们看到debug的端口是9229。
    attach到已经打开的程序端口

    {
                "type": "node",
                "request": "launch",
                "name": "nodemon",
                "runtimeExecutable": "nodemon",
                "program": "${workspaceFolder}/app.js",
                "restart": true,
                "console": "integratedTerminal",
                "internalConsoleOptions": "neverOpen"
    }
    
    远程调试
    1. 远程调试,首先应用启动应该以--inspect来启动。
    ➜  cfork git:(master) ✗ node --inspect ./server.js
    Debugger listening on ws://127.0.0.1:9229/dd9cb125-f6c0-4cc6-a28f-f6c7ad0b5bee
    For help see https://nodejs.org/en/docs/inspector
    
    1. vscode配置
    {
                "type": "node",
                "request": "attach",
                "name": "Attach to Remote",
                "address": "127.0.0.1",
                "port": 9229,
                "localRoot": "${workspaceFolder}",
                "remoteRoot": "/Users/yk/heimanba/aliFE/egg-demo/modules/cfork"
    }
    
    • localRoot: 本地文件夹
    • remoteRoot: 远程机器映射文件夹(不能把所有文件都加载进来)
    • port: 执行--inspect生成的端口

    相关文章

      网友评论

          本文标题:Nodejs之debug

          本文链接:https://www.haomeiwen.com/subject/brsumctx.html