javascriptdebugging:有没有办法打破variables值的变化?

类似于这里的其他问题, 就像这个 。

有没有办法打破任何JavaScriptdebugging器中的variables值的变化? (如IE开发工具,Visual Studio或Firebug?)

我想这就像是一个“监视variables”,但我希望能够看到调用堆栈,并在实际发生变化时暂停它。

另一种方法可能是用一个自定义的setter重写值设置,并在其中放置一个断点,但不幸的是,这对IE afaik不起作用。

更新看来,这种types的行为至less可用于C ++编写的非托pipe代码所以我想也许用C ++(谷歌的V8)编写的JavaScript引擎可能有类似的东西,但似乎没有我想要的。

你甚至不需要IDE – 你可以使用“Object.watch()”:

Object.Watch教程

如果你使用任何一个debugging器,我强烈推荐Firebug。 对于你所有的Javascript,HTML和CSS需要:-):

http://getfirebug.com/javascript

我在Chrome中使用这个库已经取得了成功,它支持所有主stream浏览器。

https://gist.github.com/eligrey/384583

只需包含.js文件,然后调用:

 yourObject.watch('someProperty', function() { doWhatYouWant(); debugger; console.write('this too'); alert('Object Changed'); //etc }); 

我不知道我是否误解了你的问题。 如果你想观看一个expression式,并在Chrome开发者工具中的jsdebugging会话中达到一定的值时停下来,这是相当简单的。

你可以简单地把一个断点放在你要检查的值的行上,然后用鼠标右键点击它并select“编辑断点…”。 一个对话框会popup一个expression式的提示,当其值为true时,执行将停止。

例如,假设你有一个循环,并且你正在向它内部的一个variables添加一个单位,并且当variables等于3时要停止执行。循环中的expression式如下所示:

n = i++;

您必须在该行上设置断点,并且要监视的expression式(在“编辑断点…”提示之后)将是n == 3 。 当你运行你的代码时,当你的variables达到那个值的时候它将会停在那里

您会注意到您的状况已设置,因为您的断点变成了橙色而不是蓝色。