如何找到一个罕见的bug?

Den*_*gin 6 javascript debugging jquery firebug

我的应用程序包含一个错误,它使脚本运行无限长.当我强制脚本停止时,所有jQuery UI元素都不会回复我的操作,也不会回应按键的应用程序.

如果我选择打开Firebug,则需要重新加载页面,并且所有当前的应用程序状态都将丢失.

问题是我无法重现这个错误,这有点让我发疯.如何找到并修复这种光滑的bug?

UPDATE.谢谢大家的建议.但问题是我无法弄清楚何时发生错误,因此无法重现错误.这就是为什么标准程序在我的情况下不起作用的原因.

我已经检查了每个while循环和递归函数调用,但还没有弄清楚问题.

发布代码并不是一个好主意 - 代码列表非常庞大而且相当复杂(游戏).

可能的解决方案.我将按照已发布的提示之一进行操作,并尝试对所有可能导致问题的功能进行控制.希望能帮助到你.

max*_*son 6

处理此问题有两种主要方法:

  1. 设置断点并逐步执行代码
  2. 开始评论某些代码部分.一旦你注释掉了一个消除bug的部分,就开始评论该部分的较小部分,直到你到达引起问题的代码行.

它也可能有助于了解您在寻找什么.无限运行的脚本通常来自以下两种情况之一:

  1. 一个永不终止的循环.
  2. 一个自称的函数

密切关注这些事情可能有助于调试过程更快一些.祝好运!


小智 0

无限长的时间,意味着,

我认为某些函数正在被递归调用,或者某些事件正在被递归触发。为了追踪它,

  1. 尝试放入所有从orconsole.log调用的函数(如果您使用的是 jquery)。window.onloaddocument.ready
  2. 使用 Firebug's profile,它会告诉您正在发生的每个函数调用。