Angularjs 是否可以在chrome调试器中屏蔽所有VM脚本?

Angularjs 是否可以在chrome调试器中屏蔽所有VM脚本?,angularjs,debugging,google-chrome-devtools,Angularjs,Debugging,Google Chrome Devtools,我正在尝试调试angular应用程序中相当复杂的模块。我已经在一个特定方法的开始处设置了一个断点,希望我能够遵循它,并查看它在哪里返回错误。然而,它不断地将我带入虚拟机脚本(VM28337、VM30559等)。我可以假设这些都能正常工作,所以我没有兴趣去看它们 我知道我可以在chrome调试器中黑盒某些脚本,但这些VM脚本的数量似乎无穷无尽。有人对如何绕过这些脚本有什么建议吗 目前在任何版本的Chrome中都不可能做到这一点。但是,我创建了一个Chromium bug来请求添加它:开发时唯一的解

我正在尝试调试angular应用程序中相当复杂的模块。我已经在一个特定方法的开始处设置了一个断点,希望我能够遵循它,并查看它在哪里返回错误。然而,它不断地将我带入虚拟机脚本(VM28337、VM30559等)。我可以假设这些都能正常工作,所以我没有兴趣去看它们


我知道我可以在chrome调试器中黑盒某些脚本,但这些VM脚本的数量似乎无穷无尽。有人对如何绕过这些脚本有什么建议吗

目前在任何版本的Chrome中都不可能做到这一点。但是,我创建了一个Chromium bug来请求添加它:

开发时唯一的解决方法是覆盖页面中的
eval
-

(function ()
 {
  var originalEval = eval;
  eval =
   function (script)
   {
    return originalEval(script + "\n//# sourceURL=blackbox-this.js");
   }
 }());
然后是blackbox
^.*blackbox this.js$

setInterval
/
setTimeout
获取字符串时,它也是如此(但无论如何,这是一种糟糕的做法,对吗?;)


这对您有用吗?

虚拟机脚本是由ajax请求动态拉入的代码,因此不会标记文件名。我也在寻找一种方法来做到这一点。VM*不工作…这也不工作:^VM/\b\d{5}\b/g感谢您让我知道。我正要从兔子洞里钻下去,运气好吗?我一直在寻找解决办法。通常你可以用鼠标右键点击脚本并在那里用黑框显示,但是菜单在这些类型的脚本上并不存在。据我所知,没有办法做到这一点。作为黑盒功能的一部分,这将是一个很好的选择。我建议你在crbug.com上开一张罚单,因为它已经被合并成另一个版本了。仍然没有解决这个问题的方法,而且看起来你无法在Firefox或IEF上实现这一点。关于这方面的任何进一步消息?具体如何?我跟不上。我如何使用它使DevTools停止调试VM######?@Mike-这需要是页面上的第一个脚本(假设生成这些VM的代码#####使用
eval
,否则,需要覆盖其他方法,如
setTimeout
函数
(如果可能)和friends)。这对angularjs应用程序不起作用。至少,仍有一些VM没有注入源URL。它还应该检查该脚本中是否已经存在sourceURL,以便开发人员可以控制要显示或不显示的内容。@Z.Khullah-我猜他们正在使用其他方法来评估代码,然后。例如
新函数(…)
或注入
代码。