我正试图调试我的angular app中一个相当复杂的模块。我已经在特定方法的开头设置了断点,希望能够跟踪并查看它在哪里返回错误。然而,它一直将我引入VM脚本(VM28337、VM30559等)。我可以假设这些都按照预期工作,因此我对它们没有兴趣。
我知道我可以在chrome debugger中黑盒某些脚本,但似乎有无数个这样的VM脚本。是否有人有关于如何规避这些脚本的建议?
我正试图调试我的angular app中一个相当复杂的模块。我已经在特定方法的开头设置了断点,希望能够跟踪并查看它在哪里返回错误。然而,它一直将我引入VM脚本(VM28337、VM30559等)。我可以假设这些都按照预期工作,因此我对它们没有兴趣。
我知道我可以在chrome debugger中黑盒某些脚本,但似乎有无数个这样的VM脚本。是否有人有关于如何规避这些脚本的建议?
目前在任何版本的Chrome中似乎都不可能实现这一点。 不过,我已经创建了一个Chromium bug来请求添加此功能:Chromium Issue 526239
在开发期间,一个解决方法是在你的页面中覆盖eval
函数 -
(function ()
{
var originalEval = eval;
eval =
function (script)
{
return originalEval(script + "\n//# sourceURL=blackbox-this.js");
}
}());
然后是黑盒子 ^.*blackbox-this.js$
对于setInterval
/setTimeout
,当它得到一个字符串时也是一样的(但这是不好的实践,对吧?;))
你觉得这样可以吗?
eval
,否则,您需要覆盖其他手段,如 setTimeout
,Function
或尽可能使用 friends)。 - PhistucKnew Function(...)
或者注入一个<script>code</script>
。 - PhistucK
console.log()
不显示它来自哪里的源代码,对吗(例如 VM300:1)? - information_interchange