如何调试引发此错误的应用程序:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at Socket.EventEmitter.addListener (events.js:160:15)
at Socket.Readable.on (_stream_readable.js:653:33)
at Socket.EventEmitter.once (events.js:179:8)
at TCP.onread (net.js:527:26)
我找不到将侦听器限制增加.setMaxListeners(0);
的假定泄漏对象
SOLUTION (from fardjad and jan salawa)
通过jan salawa的搜索,我找到了一个工作库(longjohn),用于增加堆栈跟踪的详细程度.根据fardjad的回答,我发现我们必须制作EventEmitter.addListener
AND EventEmitter.on
的原型.
有了这个解决方案,我可以得到这个新的跟踪:
(node) warning: possible EventEmitter memory leak detected. 11 listeners added. Use emitter.setMaxListeners() to increase limit.
Trace
at EventEmitter.addListener.EventEmitter.on (xxx/main.js:44:15)
at Readable.on (_stream_readable.js:653:33)
at ServerResponse.assignSocket (http.js:1072:10)
at parser.onIncoming (http.js:1979:11)
at parserOnHeadersComplete (http.js:119:23)
at socket.ondata (http.js:1912:22)
at TCP.onread (net.js:510:27)