在使用开发人员工具调试 JavaScript 代码时,在回调中设置断点并评估表达式(使用调试器的监视功能或只是尝试在控制台中评估当前范围的表达式)几乎总是会使应用程序崩溃。
这似乎特别发生在浏览器触发的回调上,比如 ajax 请求或 DOM 事件,更特别是通过 onreadystatechange 或 DOMContentLoaded 触发的事件,而不会发生在我们自己的代码触发的回调上(不完全确定其他 DOM 事件)。
这真的很烦人,因为通常当我能够像这样使应用程序崩溃时,我每次都能一致地重现它,并且它阻止我使用开发人员工具进行调试,不得不求助于到处使用 console.logs 来填充我的代码.
更新
我查看了 OSX 的 Console.app 日志,当应用程序崩溃时我发现了这一点。这大概可以解释。
28/03/2012 10:21:30.456 [0x0-0x3cb3cb].com.spotify.client: [0328/102130:ERROR:browser_devtools_client.cc(55)] 在虚拟 void BrowserDevToolsClient::activateWindow() 中未实现