加入收藏 | 设为首页 | 会员中心 | 我要投稿 PHP编程网 - 黄冈站长网 (http://www.0713zz.com/)- 数据应用、建站、人体识别、智能机器人、语音技术!
当前位置: 首页 > 站长资讯 > 动态 > 正文

VS Code,请给我文件!

发布时间:2022-03-21 18:27:36 所属栏目:动态 来源:互联网
导读:近日, 用户na-an发现:使用微软的 VSCode 编辑器打开文件夹时,目录中会自动生成许多带有无效代码的空文件。该用户随即在 VSCode GitHub 仓库中发布了相关 Issue,随机引发了热烈讨论,很多用户表示自己也饱受该 Bug 的困扰。 有些文件名称很短,有些名称
      近日, 用户na-an发现:使用微软的 VSCode 编辑器打开文件夹时,目录中会自动生成许多带有无效代码的空文件。该用户随即在 VSCode GitHub 仓库中发布了相关 Issue,随机引发了热烈讨论,很多用户表示自己也饱受该 Bug 的困扰。
  
     有些文件名称很短,有些名称很长,这些文件的名称不是有效的 unicode ,比如图中的 312316361 是八进制。随机创建的文件似乎来自正在运行的进程内存转储,包含一些通常出现在可执行文件中的字符串,看起来像指针出现了堆栈损坏或越界问题。
  
     最可怕的是,除了疯狂创造空文件外,VSCode 还会随机修改用户文件,比如用户 daantimmer 的所有头文件的内容都被清了,通通变成 0 KB(希望有备份)
  
     该 Bug 的影响范围不限于当前的工作区文件夹,它甚至能清空一些系统文件/文件夹:
  
该 Bug 在 Windows 和 Linux 等不同系统中都出现过,但受害者有一个非常有趣的共同点:他们都写 C++ 代码,并使用 VSCode 的 C++ 扩展。有人尝试把所有扩展禁用所有扩展后,问题就消失了;如果将 C++ 扩展切换到稳定版本(1.8.4),问题也会消失。
 
如此一来就破案了(issues 9041),原来 Bug 的源头是 VSCode C++ 扩展 1.9.4 预发行版本,该版本并不稳定,出现了上述的文件系统 Bug。但如果用户勾选了 VSCode 自动更新功能,则会自动更新到预发行的 C++ 扩展 1.9.4 版本。
  
然而,C++ 扩展的开发者也不知道 1.9.4 版本具体到底是哪里出现了问题,该内存损坏问题似乎跟 C++ 扩展早已存在,但无法解决的几个文件损坏 Bug:#4573和#5061有关。目前的推测是 1.9.4 版本意外使用了未初始化的内存,由于修改了不遵循现代 C++ 编码指南的外部第三方子系统,可能会阻止或检测到未初始化指针的使用,指针问题导致出现了一些文件系统的问题。
 
用户解决该问题的方法也很简单,不再安装 1.9.4 版本的 C++ 扩展即可,1.9.5、1.9.3 、 1.8.4,或是 最新发布的 1.9.6 版本都不存在该问题。

(编辑:PHP编程网 - 黄冈站长网)

【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容!

    热点阅读