Firebug - 断点没有击中

时间:2009-03-16 17:37:54

标签: javascript firebug breakpoints hit script-debugging

我在外部JS文件中设置断点,但我无法让Firebug以一致的方式点击断点。它有时有效,但大多数情况下它没有。我可以让它工作的唯一方法是打开“Break on all errors”

我使用过调试器;声明也没有任何运气。

11 个答案:

答案 0 :(得分:15)

如果行号不是绿色,似乎Firebug无法调试该部分代码,因为它超出了范围。所以,如果你使用像$(function(){...})这样的东西; Firebug将无法访问函数和变量。

这有意义吗?

此外,是否有可能某些其他功能或某些内容覆盖了您尝试调试的功能。如果你两次包含相同的JS文件,它甚至可能。

希望有所帮助。

答案 1 :(得分:6)

Firebug是否在“脚本”选项卡中显示带绿线编号的代码?这表示可调试的代码行。

我遇到过这种症状,其中没有一个行号有时是绿色的。我刷新页面,神奇地再次变绿了。

答案 2 :(得分:6)

我也经常遇到这个问题。我发现重新打开选项卡似乎有所帮助(断点不会丢失)。但“打破所有错误”似乎是最可靠的破解方式。

我很少对IE有所了解,但在这种情况下,它是正确的。在VS中调试JavaScript只是起作用。它可以毫无问题地命中断点(“调试器”),并阻止页面上的所有其他JavaScript代码执行。所以我经常使用它作为备份。

答案 3 :(得分:6)

尝试使用Firebug 1.4调试帧内的页面时遇到此问题。从“此框架”上下文菜单中选择“仅显示此框架”或“在新选项卡中打开框架”,然后刷新页面似乎使脚本可调试。

答案 4 :(得分:3)

Firebug上的“控制台”标签是否显示任何其他JavaScript的错误?我发现,如果调试断点之前的代码存在JavaScript错误,那么它将永远不会到达该行代码,直到前面的断开代码被修复。

答案 5 :(得分:3)

我间歇性地遇到这个问题。我选择了#34;禁用所有断点"并且"启用所有断点"从断点下拉,它开始工作。

答案 6 :(得分:2)

我花了1个小时。

我有<script>这样的标签:

<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript">

你能发现问题吗?

我花了很长时间才发现它。关闭/代码时缺少<script>

<!-- jQuery Validate -->
<script src="http://ajax.aspnetcdn.com/ajax/jquery.validate/1.10.0/jquery.validate.min.js" type="text/javascript" />

这肯定是由于一些复制/粘贴然后尝试更改代码......在这种情况下我只是玩傻瓜! :)

添加/后,我能够在Firebug中使用断点。这很有道理。

最后,我可以看到那些有福的绿色数字。

答案 7 :(得分:0)

只是为那些提到的人添加另一种可能性。

当我在压力下自然地修复某些东西时,就发生了这种情况。

我无意中引入了语法错误:

function: myFunc(){}

// function body

}

就像那样。在控制台日志的开头有一个错误,但我没有注意到它。我一直在尝试调试该文件,但Firebug不会介入它。

所以,如果发生这种情况:检查控制台,可能是语法错误导致文件加载短路。

答案 8 :(得分:0)

对我而言,我删除了每次document.write()次来电后都能正常工作。

答案 9 :(得分:0)

与FF 36和FB 2.0.8相同的问题:控制台中没有错误,代码工作正常,但FB显示的是HTML而不是JS,在debugger断点处停止但在某个随机HTML行显示,不会停留在常规断点处。

  

我通过从页面中提取JS并将其移入其中来解决它   拥有JS文件。

但是有一个问题:当脚本存在于自己的JS文件中时,我无法让“全局”变量在FF中工作(无论代码在哪里,都可以在IE中正常工作),甚至使用{{1 }} 句法。因此最终在FB中从单独的文件进行调试,但是还原为内联生产。

答案 10 :(得分:0)

我也有这个问题。也许与KIT-Inwi的答案有关......但是我在每次加载页面时都使用PHP生成随机行。

Firebug似乎记得将断点放在整个HTML页面行号,而不一定是Javascript的行,这意味着您将断点放在此页面上的行号下次加载时,load won必须是同一行代码,因此断点将显示为&#34; jump&#34;。

我不确定您是如何使用每次更改的动态内容来解决它的,但我通过删除随机行来修复它,因此每个页面加载时断点的行都相同。 / p>