繁体   English   中英

Chrome 断点停止工作 - 查看具有 VM 前缀的不同文件

[英]Chrome breakpoints stopped working - looking at different file with a VM prefix

突然之间,我在 Chrome 中的断点完全停止工作。 奇怪的是,如果我在代码中遇到错误并以这种方式中断,或者我添加了调试器; 在我的代码中的任何地方,它都会停止,但它会打开一个不同的文件,其前缀类似于 VM[number]。

在开发控制台中自然显示断点不起作用的文件名为 main.js,但是当我遇到错误或通过调试器命令停止时,它会打开一个名为“VM113 main.js”的新文件。 更奇怪的是,如果我按照代码进入一个不同的文件,比如 jquery.js,它也不会进入 jquery.js 文件,而是进入一个名为“VM97 jquery.js”或“VM98 jquery-ui”的文件。 js”。

发生了什么以及如何让 Chrome 查看实际文件而不是 VM 文件?

在我个人的研究中,这是由于我试图在其中放置断点的文件的文件路径中有重音字符引起的。

假设您有两个文件, HäagenDazs/main.jsHaagenDazs/main.js (为了示例而命名)并且它们都包含(大致)相同的内容:

var x = function () {}; var y = function () {};

如果您在HäagenDazs/main.js放置断点,Chrome 将删除它并将其设置在VM-### main.js中的同一位置。 如果您在HaagenDazs/main.js放置断点,Chrome 会将其保留在原始文件中。

它似乎是路径中任何地方的重音字符和该文件中存在关键字function的组合。 我在 OS X 10.10 中使用 Chrome 版本 38.0.2125.122 对此进行了测试。

我完全卸载了 Chrome 并重新安装了它,这似乎解决了这个问题。 我不知道是什么原因导致它开始这种行为,但重新安装解决了它。

我刚刚遇到了同样的问题并得到了解决方案,所以我将它留在这里仅供记录。

就我而言,这是因为该特定网站使用了服务工作者,并且他们在我放置断点的本地覆盖“之前”提供了额外的 JS 缓存级别。

因此,执行总是在 [VM] 选项卡中停止,该选项卡不包含我在这些覆盖中所做的任何更改。

解决方案是进入应用程序菜单。 在那里,在 Service Workers 部分,我选中了“离线”和“绕过网络”选项,然后单击最右侧的“取消注册”。

Chrome 开发控制台屏幕截图:应用程序菜单

暂无
暂无

声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM