javascript - 当javascript进入无限循环和递归调用时如何调试javascript?

标签 javascript debugging

当您处于无限循环或递归调用中时,基本上浏览器会停止响应任何内容(无论是在 Chrome 还是 FF 上)。您看不到日志,无法进入调试器,甚至无法打开控制台本身。浏览器只是简单地卡住。这太烦人了。看来我只能坐在这里挠头......任何人都可以阐明如何解决这个问题?

最佳答案

您可以尝试的另一个技巧是打开 Chrome 中的 Web 开发人员工具,并在浏览器明显挂起时尝试​​点击暂停。然后它应该在当前执行的行处中断。随着一些人的走出去,你应该会弄清楚这一点。

假设您知道(或怀疑)发生无限循环的函数,您可以添加如下代码:

var calls = 0;
function iSuspectToBeLoopingInfititely() {
  calls += 1;
  if (calls > 100) { debugger; }
}

一旦该方法被调用 100 次,这将停止 Chrome 中的 JavaScript 调试器。 注意:Chrome 只会在 debugger; 调用时中断,前提是您确实打开了开发者工具窗口。

关于javascript - 当javascript进入无限循环和递归调用时如何调试javascript?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/12815892/

相关文章:

javascript - 为什么 backbone.js model.save() 会改变属性散列?

javascript - 满足 promise 时运行 frisby 测试

c - 如何使用 Visual Studio 调试 SQLite 源代码

java - 智能 : show decompiled class disassembly even when source is present

eclipse - 在 Eclipse 中调试时不显示变量

javascript - 将地理位置 JavaScript 值传递给 Bean

javascript - 创建自定义 jQuery 类

javascript - 我想在单击主体时关闭 div,但使用 .not( ) 或类似的简单函数省略父 div

debugging - Windows 2008+ 的 Dr. Watson 替代品?

c# - 该断点当前不会命中 wcf 服务。无法加载符号