我在Linux上运行的node.js进程现在挂起了,而且CPU占用率达到了100%。有没有办法调试并找出原因?我需要收集转储文件吗?谢谢。
有一个名为why-is-node-running的npm模块,它可以提供以下信息:
There are 4 known handle(s) keeping the process running and 0 unknown
Known handles:
# Timer
/Users/maf/dev/node_modules/why-is-node-running/example.js:6 - setInterval(function () {}, 1000)
/Users/maf/dev/node_modules/why-is-node-running/example.js:10 - createServer()
# TCP
/Users/maf/dev/node_modules/why-is-node-running/example.js:7 - server.listen(0)
/Users/maf/dev/node_modules/why-is-node-running/example.js:10 - createServer()
# TCP
/Users/maf/dev/node_modules/why-is-node-running/example.js:7 - server.listen(0)
/Users/maf/dev/node_modules/why-is-node-running/example.js:11 - createServer()
# Timer
/Users/maf/dev/node_modules/why-is-node-running/example.js:13 - setTimeout(function () {
对我来说,“why-is-node-running”包并不是很有用,因为我有一个无限循环的while循环。
我希望有一个工具可以检测项目中的无限循环。
解决我的问题的方法是手动反转我的项目的一些版本,并手动重新添加我删除的代码,直到我找到导致应用程序挂起的原因,就像我说的,一个无限循环。
strace
。 - Nitzan Shakedyum install mdbtools
进行安装。 - raidendev