【发布时间】:2012-03-27 21:29:32
【问题描述】:
我有一个非常复杂的脚本,它打开套接字、HTTP 服务器、读取/写入文件、设置超时等。达到某些条件后,所有这些都应该停止 - 我正在清除所有超时,关闭所有服务器和很快。
但有时该过程会很好地停止,有时它只是一直在等待某些事情发生。我可以杀死节点进程,但我想找出导致该行为的原因,修复它并让进程自行停止。是否可以调试阻止它退出的原因?
更新:
我遵循了 Jan 的建议,这就是我尝试“调试”一个简单的 setTimeout 调用时得到的结果:
/tmp/node2/bin/node test.js
[debug] UV_TIMER 0x1cdfd20 (fd:910168617, refs:0, flags:0x0)
[debug] UV_ASYNC 0xc096e8 (fd:0, refs:-1, flags:0x0)
[debug] UV_ASYNC 0xc09658 (fd:0, refs:0, flags:0x0)
[debug] UV_IDLE 0xc09778 (fd:0, refs:-2, flags:0x0)
[debug] UV_ASYNC 0xc041c0 (fd:0, refs:-1, flags:0x0)
[debug] UV_ASYNC 0xc03de0 (fd:0, refs:-1, flags:0x0)
[debug] UV_TIMER 0xc03d40 (fd:0, refs:-1, flags:0x0)
[debug] UV_IDLE 0xc03ca0 (fd:0, refs:-1, flags:0x0)
[debug] UV_CHECK 0xc03c00 (fd:0, refs:-1, flags:0x0)
[debug] UV_IDLE 0xc03a00 (fd:0, refs:-1, flags:0x0)
[debug] UV_CHECK 0xc03b60 (fd:0, refs:-1, flags:0x0)
[debug] UV_PREPARE 0xc03ac0 (fd:0, refs:-1, flags:0x0)
所以这对我来说不是很有用,但我想没有其他选择。
【问题讨论】:
标签: node.js