官宣:AddressSanitizer新增x64支持

官宣:AddressSanitizer新增x64支持

作者:BlogUpdater |  时间:2020-08-13 |  浏览:1186 |  评论已关闭 条评论

官宣
去年10月,我们官宣了MSVC工具集中AddressSanitizer x86版本的支持。
主要的特性包括在Visual Studio中显示有关AddressSanitizer的错误报告,高亮问题代码等。
AddressSanitizer最初由Google设计并开发,主要为了改进程序的内存访问安全性,它能识别可能发生的访问违规问题。通过在可能出问题的代码中高亮突出显示,开发者可以快速识别潜在的代码问题。

最重要的是,一般只要这个组件报告了错误,那十有八九是代码确实有问题,对于那些代码完美主义者来说,确实是一个神器。

从Visual Studio 2019 v16.7开始,AddressSanitizer可以同时支持x86和x64这两种构建目标。每种构建目标都包含了完整的调试版和已高度优化后的发行版支持。编译器可以生成和AddressSanitizer运行时交互的代码和元数据,另外,AddressSanitizer特性能有效支持所有级别的代码优化选项。

为了在IDE中提供AddressSanitizer支持,我们添加了一个新的vcasan.lib文件。这个小的静态库文件创建了一些元数据,IDE可以基于这些元数据进行分析并将错误报告显示在对应的窗格中。
元数据将会被存储在Crashdump(.dmp)文件中,Crashdump文件将会在程序终止时生成。这些崩溃转储通常被用来调试程序的异常退出,而且它们可以方便的在开发人员和测试人员之间共享,文件可以在Visual Studio中重放以观察程序崩溃前发生的事情。

为了在Windows平台上支持上述的设计目标,我们对已开源的运行时做出了一些修改并积极回馈了开源社区。在此需要感谢那些早期使用这个特性的开发者,最终我们为所有Windows平台C++开发者提供这个特性。

总结
时不时用AddressSanitizer跑一跑代码,我等代码完美主义者有福了。

标签:

评论已关闭。