为什么我的断点会逃离他们的预定位置

时间:2015-02-03 11:53:35

标签: firefox-developer-tools firefox-developer-edition

尝试在javascript中的任何位置设置断点时,我会遇到在Firefox Developer Edition中移动到文件末尾的断点行为。

enter image description here

有时在重新启动PC后或第二天它正在运行,但我不确定某些代码是否会导致此问题,或者这是否是Firefox Developer Edition中的错误。

3 个答案:

答案 0 :(得分:2)

当您在不包含可执行代码的行上设置断点时,调试器会尝试提供帮助,并将断点滑动到它可以找到的包含可执行代码的下一个最近的行。这并不像看起来那么容易,因为它可以在已经被垃圾收集的脚本上设置断点,因此调试器不能总是判断一行是否包含可执行代码,或者相应的脚本是否刚刚被垃圾收集

当涉及源映射时,问题更加复杂,因为调试器需要确定原始源中的哪些行对应于您设置断点的生成源中的行。我们目前这样做的方式并不总是准确的,这可能导致像你所看到的那样的问题。

也就是说,还有其他事情可以解释为什么你的断点不按预期方式工作。例如,我们还需要将断点位置映射到字节码偏移,这也不总是准确地完成。

我们正在积极重构调试器中的断点代码,以尝试解决这些问题,因此如果您遇到回归,我不会感到惊讶。最好的办法是在bugzilla中为此问题提交一个错误,最好是重现步骤。

希望有所帮助!

答案 1 :(得分:0)

之后安装firebug,它会要求你升级到alpha版本接受升级,现在你可以将断点放在你想要的行中。

问候。

答案 2 :(得分:0)

DON' BREAK LINES

我的解决方案是删除变量中的额外行,以便一切都在一行

  

错误的语法:

 var inner_html =
'<a>
    <div class="list_autocomplete">
        <div class="image_autocomplete">
        <img src="'+ img_url + '">
        </div>
        <div class="label_autocomplete">' + item.label + '</div>
        <div class="description_autocomplete">' + item.description + '</div>
    </div>
</a>';
  

更正语法:

var inner_html = '<a><div class="list_item_container"><div class="image"><img src="img/' + item.image + '"></div><div class="label">' + item.label + '</div><div class="description">' + item.description + '</div></div></a>';