为啥 node-debug 总是在 _tickCallback 函数处中断?

Posted

技术标签:

【中文标题】为啥 node-debug 总是在 _tickCallback 函数处中断?【英文标题】:Why does node-debug always break at _tickCallback function?为什么 node-debug 总是在 _tickCallback 函数处中断? 【发布时间】:2015-05-18 10:32:24 【问题描述】:

这是一个愚蠢的问题,但是,我无法真正弄清楚 2 个小时,也无法在谷歌上找到任何答案。

我正在尝试调试我的controller,方法是在save 函数的var profile = req.body 行上放置一个断点:

function save(collectionName) 
    return function (req, res, next) 
        var profile = req.body,
            query = ;
        ...
        ...
    ;

但是,应用程序总是会在 node.js 文件中的 _tickCallback 函数内部中断:

// Run callbacks that have no domain.
// Using domains will cause this to be overridden.
function _tickCallback() 
  var callback, threw, tock;

  scheduleMicrotasks();

  while (tickInfo[kIndex] < tickInfo[kLength]) 
    tock = nextTickQueue[tickInfo[kIndex]++];
    callback = tock.callback;
    threw = true;
    try 
      callback();
      threw = false;
     finally 
      if (threw)
        tickDone();
    
    if (1e4 < tickInfo[kIndex])
      tickDone();
  

  tickDone();

所以,我尝试跳过,直到它退出该功能,但是,它也恢复了应用程序而没有回到我的断点。任何帮助将非常感激。

【问题讨论】:

很遗憾,我仍然找不到解决方案。不知道是不是node版本的问题,我用的是0.12.2 我正在使用0.12.4,它仍在发生。它只是有时会发生,但取决于调试器语句的位置。 【参考方案1】:

我认为这种情况会发生,然后您将 node-debug 命令与节点 0.12.* 一起使用。 这是一个 nodejs 错误https://github.com/joyent/node/issues/25266

作为一种解决方法,您可以使用debugger 语句(使用 NI >=0.10.1。我推荐使用 NI 0.11.0),或使用 iojs

【讨论】:

以上是关于为啥 node-debug 总是在 _tickCallback 函数处中断?的主要内容,如果未能解决你的问题,请参考以下文章

为啥 $_FILES 超级全局总是空的

为啥变量_count总是返回-1?

node-debug 三法三例之node debugger + node inspector

为啥 GCC 编译的应用程序总是包含 _mcount 符号?

为啥 GNU make 总是重新链接我的项目?

为啥 localhost 不会在 chrome (OSX) 中路由到 127.0.0.1?