Chrome开发工具:来自JavaScript的文件

我在我的JavaScript文件(jaydata.js)中添加了一个断点,并按下“跳到下一个函数调用”。 当它达到一条线是:

}, 

另一个名为“[VM](8312)”的文件popup。 我继续点击“跳到下一个函数调用”,现在我的屏幕是:

在这里输入图像说明

这些奇怪而神秘的脚本是什么?“(VMX)(XXXX),它们来自哪里?

5 Solutions collect form web for “Chrome开发工具:来自JavaScript的文件”

[VM] (scriptId)没有特别的意义。 这是一个虚拟的名字,可以帮助我们区分与文件名无关的代码,例如使用eval和朋友创build的代码。

过去,所有这些脚本都被贴上标签(program)

如果你有兴趣,只要在Chromium的源代码中查找"[VM]" ,你会发现这些数字在开发工具之外没有什么重要的意义。

在使用eval时,javascript会被抛入Chromedebugging器虚拟机。 为了查看在Chrome Debugger Sources下用eval创build的js,在js结尾(感谢Splaktar)设置这个属性:

 //@ sourceURL=dynamicScript.js 

有可能通过一些debugging器,如WebKit,FireBug或IE8开发工具debuggingdynamic加载JavaScript?

无论何时通过AJAX加载HTML内容,并且该内容包含<script>标记,该脚本将使用eval()进行评估,并由Chrome的Sources视图将其识别为以“VM”开头的新文件。 您可以随时访问“networking”选项卡,查找AJAX请求,并查看整个HTML响应,包括您的脚本。

我发现虚拟机是通过一些Chrome扩展生成的 – 它们将CSS / JS插入到页面中,Chrome使用虚拟机文件来运行它。

当你正在debugging后来卸载的子窗口(iframe)源时,你的源文件也将获得VM前缀和黄色背景。

  • 如何查看/重播Chrome内容保存的Chromenetworkingdebugging器har文件?
  • 如何用lambdaexpression式debuggingstream()。map(...)?
  • 将错误修复整合到Scrum过程中的最佳方法?
  • Visual Studiodebugging“快速观察”工具和lambdaexpression式
  • Eclipse的Javadebugging:找不到源代码
  • 后缀#DEN表示variables的值是什么意思
  • debugging模式找不到此可执行文件的有效configuration文件
  • 如何让PHP在出错时产生回溯?
  • 在debugging过程中,在Visual Studio中自动附加到subprocess
  • 使用Ping时蓝屏
  • 如何在崩溃时为我的进程创buildminidump?