chrome浏览器调试
使用 --inspect
开关进行调试。一个Nodejs进程开始侦听调试客户端,默认情况下侦听127.0.0.1:9229的域名和端口号
--inspect 和--inspect-brk的区别是--inspect-brk默认会在第一行代码进行断点
在chrome浏览器输入chrome//inspect
调试时候屏蔽node基础库代码
我们调试的时候并不希望调试到基础库(jquery,node)的代码。chrome也提供了这样的功能blackbox
。Blackbox允许屏蔽指定js文件,这样调试就可以绕过它们了
临时保存
直接在chrome浏览器修改,ctrl+s
保存。可以自动生效
其他打开方式
格式devtools://devtools/bundled/inspector.html?experiments=true&v8only=true&ws=127.0.0.1:9229/e9f999f7-351b-4fcb-a9ce-0bcbf03a81c3
后面那段ws=xxx
,是执行了--inspect
的返回结果。
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"
}
远程调试
- 远程调试,首先应用启动应该以
--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
- 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
生成的端口
网友评论