调试器有时候会对被调试的程序产生干扰,破坏了原有的逻辑。
Firebug对RegExp全局对象的干扰是一个例子。
再比如调试器对本地变量或watch内容的属性遍历也会干扰程序。
有些对象,比如XmlHttpRequest对象,它的某些属性对访问时机
是有要求的,比如 responseXML 就要求在 send 方法之后再调用,
但是如果你在调试器里watch它,就使得这些有访问时机要求的属性
被提前访问到。
再比如,我们有这样一个对象,它有属性A和B,是互斥的关系,它的
内部完整状态是延迟确定的,有赖于调用者先使用A属性还是B属性。
调试器面对这样的对象,不管三七二十一都去dump它的属性,就扰乱
了这个对象的逻辑。
也许你会说,你不该这样设计对象。但是如果不考虑调试器因素,它
也没什么问题。所以我觉得这是调试器的困惑。
--
FROM 211.94.73.*