内容提要
过去一年,我们在MSVC地址消毒器(ASan)上进行了重要投资,包括与LLVM的协调、增强内部工具覆盖和API安全性。从Visual Studio 2022版本17.12起,ASan与LLVM主干每周同步,支持Windows特定功能,并集成到MSVC代码库中,以在持续集成中识别内存安全问题,防止新缺陷引入。
关键要点
-
过去一年在MSVC地址消毒器(ASan)上进行了重要投资,包括与LLVM的协调、增强内部工具覆盖和API安全性。
-
MSVC ASan源自LLVM仓库的一个分支,之前基于过时的LLVM版本,无法及时整合新版本的更改。
-
已完成MSVC ASan运行时的主要部分上游化,现在可以在开放环境中进行更多工作,并每周从LLVM主干获取更改。
-
针对Windows的特定支持尚未上游化,包括拦截更多内存分配器和提供“继续错误”模式。
-
最近将ASan集成到MSVC代码库中,构建编译器、链接器、代码分析工具和运行时库以进行测试。
-
ASan仅用于测试目的,开发者不应发布启用ASan的二进制文件。
-
MSVC代码库历史悠久,许多ASan能够识别的错误已通过内部测试解决,但仍需防止新内存安全问题的引入。
-
在Visual Studio 2022版本17.13 GA中修复了多个内存管理和API拦截相关的问题。
-
欢迎用户下载Visual Studio并尝试地址消毒器,反馈问题或建议可通过开发者社区或Visual Studio内的反馈功能提交。
延伸问答
MSVC地址消毒器(ASan)在过去一年有哪些重要更新?
过去一年,MSVC地址消毒器在与LLVM协调、增强内部工具覆盖和API安全性等方面进行了重要投资。
MSVC ASan如何与LLVM进行协调?
从Visual Studio 2022版本17.12起,MSVC ASan每周从LLVM主干获取更改,支持Windows特定功能。
MSVC ASan的主要功能是什么?
MSVC ASan用于识别内存安全问题,防止新缺陷引入,主要用于测试目的。
在Visual Studio 2022版本17.13中修复了哪些问题?
修复了多个内存管理和API拦截相关的问题,包括提高了全局和局部内存管理的互操作性。
开发者在使用ASan时需要注意什么?
开发者不应发布启用ASan的二进制文件,ASan仅用于测试目的。
如何反馈MSVC或Visual Studio的问题和建议?
用户可以通过开发者社区或在Visual Studio内的反馈功能提交问题或建议。