Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/387.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Chrome断点停止工作-查看具有VM前缀的不同文件_Javascript_Debugging_Google Chrome_Breakpoints - Fatal编程技术网

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

Javascript Chrome断点停止工作-查看具有VM前缀的不同文件,javascript,debugging,google-chrome,breakpoints,Javascript,Debugging,Google Chrome,Breakpoints,突然,我在Chrome中的断点完全停止工作。奇怪的是,如果我在代码中遇到错误并以这种方式中断,或者如果我添加了调试器;在我的代码中的任何地方,它都会停止,但它会打开一个前缀为VM[number]的不同文件 在开发控制台中自然显示断点不起作用的文件名为main.js,但当我遇到错误或通过调试器命令停止时,它会打开一个名为“VM113 main.js”的新文件。更奇怪的是,如果我按照代码进入另一个文件,比如jquery.js,它也不会进入jquery.js文件,而是进入一个名为“VM97 jquer

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

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


发生了什么?我如何让Chrome查看实际文件而不是虚拟机文件?

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

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

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

var x=function(){}
vary=function(){}

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


它似乎是路径中任意位置的重音字符与该文件中存在关键字
函数
的组合。我在OS X 10.10中使用Chrome 38.0.2125.122版对其进行了测试。

我刚刚遇到了同样的问题,并得到了解决方案,因此我将其留在这里以供记录

在我的例子中,这是因为那个特定的网站使用了服务工作者,他们在我放置断点的本地覆盖之前提供了额外级别的JS缓存

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

解决方法是进入应用程序菜单。在那里,在“服务人员”部分,我选中了“脱机”和“绕过网络”选项,然后单击最右侧的“注销”


您的断点需要修改底层代码,而chrome实际使用的正是这些代码,因此错误来自正确的地方。@dandavis我恐怕不太理解您的评论。我修改了我的代码,刷新了页面,甚至尝试重新启动Chrome,但Chrome仍在这样做。