Nodejs之debug
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 【Nodejs之debug】
其他打开方式 格式
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"
}
远程调试
- 远程调试,首先应用启动应该以
--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
生成的端口
推荐阅读
- PMSJ寻平面设计师之现代(Hyundai)
- 太平之莲
- 闲杂“细雨”
- 七年之痒之后
- 深入理解Go之generate
- 由浅入深理解AOP
- 期刊|期刊 | 国内核心期刊之(北大核心)
- 生活随笔|好天气下的意外之喜
- 感恩之旅第75天
- python学习之|python学习之 实现QQ自动发送消息