VS2019 16 ASAN配置详解:内存问题检测
1星 需积分: 42 86 浏览量
更新于2024-08-05
收藏 537B TXT 举报
"VS2019 16的ASAN常用选项"
在Visual Studio 2019版本16及更高版本中,Google AddressSanitizer(ASAN)被集成,这是一个强大的动态内存错误检测工具,可以帮助开发者检测并定位多种内存问题。ASAN能够检测到包括栈、堆、全局变量的越界访问,分配与释放不匹配,分配大小过大,new和delete操作类型不匹配,释放后使用,栈作用域后使用,返回后使用,动态初始化时的问题等。以下是一些ASAN的常用配置选项及其详细解释:
1. **halt_on_error=0/1**: 这个选项决定在检测到错误时是否立即终止程序。如果设置为0,程序将继续运行,而设置为1则会在发现错误时停止。
2. **quarantine_size_mb=1024**: 隔离区大小设置为1024MB,用于存放可能有问题的对象,防止它们造成进一步的破坏。
3. **thread_local_quarantine_size_kb=512**: 每线程隔离区的大小设置为512KB,用于线程本地存储可疑对象。
4. **log_path=asan.log**: 错误日志的保存路径,这里设置为asan.log文件。
5. **alloc_dealloc_mismatch=1**: 开启检测分配与释放不匹配的问题。
6. **new_delete_type_mismatch=1**: 检测new和delete操作符对类型的匹配性。
7. **detect_stack_use_after_return=1**: 开启检测栈使用超范围,即函数返回后栈上内存的使用情况。
8. **allow_user_poisoning=1**: 允许用户标记特定区域为已损坏,以进行特定的错误检测。
9. **check_initialization_order=1**: 检查全局和静态变量的初始化顺序,防止因初始化顺序不当导致的问题。
10. **report_globals=1**: 报告全局变量的内存错误。
11. **debug=1**: 在调试模式下运行ASAN,提供更多调试信息。
12. **sleep_before_dying=5**: 程序在检测到错误后等待5秒才退出,方便开发者查看错误状态。
13. **atexit=1**: 在程序退出时打印错误报告。
14. **print_stats=1**: 在程序结束时打印内存使用统计信息。
15. **strict_init_order=1**: 严格检查初始化顺序,确保所有全局和静态变量按预期顺序初始化。
16. **detect_invalid_pointer_pairs=2**: 检测无效指针对,例如空指针解引用和未初始化的指针。
17. **detect_container_overflow=1**: 检测容器溢出,如数组或向量的越界访问。
18. **detect_odr_violation=2**: 检测One Definition Rule (ODR) 违反,确保相同名称的实体在所有翻译单元中具有相同的定义。
19. **verbosity=2**: 设置输出信息的详细程度,2表示较为详细的输出。
20. **color=always**: 总是使用颜色编码来突出显示错误信息,便于阅读。
21. **detect_stack_use_after_return=1**: 再次提及,开启检测栈使用超范围。
22. **allocator_may_return_null=1**: 分配器允许返回NULL,意味着当内存不足时,分配函数可能会返回NULL。
23. **windows_hook_legacy_allocators=1**: 在Windows平台上,钩住旧版的内存分配器,以便ASAN能够监控这些分配。
通过正确配置这些选项,开发者可以在VS2019中利用ASAN更有效地找出和修复内存相关的错误,提高代码质量。同时,理解这些选项的含义有助于根据具体需求调整ASAN的行为,以达到最佳的检测效果。
2022-05-05 上传
2014-12-10 上传
点击了解资源详情
2024-12-27 上传
2024-12-27 上传
2024-12-27 上传
2024-12-27 上传
2024-12-27 上传
老中医的博客
- 粉丝: 3561
- 资源: 6
最新资源
- PyPI 官网下载 | vam.whittaker-2.0.1-cp36-cp36m-win_amd64.whl
- 自定义横幅CollectionView布局-Swift开发
- ASP-online-shopping-system.rar_百货/超市行业_ASP_
- java jdk 8.0安装包
- 一种从命令行打开拉取请求的便携式无魔术方式
- 2018-2019年华东师范大学825计算机学科基础考研真题
- autofan-开源
- intelliPWR:intelliPWR的核心
- 人工智能实践课程小项目——对话机器人.zip
- 参考资料-412A.混凝土路面砖试验报告.zip
- Ant Lob Accessor-开源
- FTP.zip_Ftp客户端_Visual_C++_
- MATLAB-Improved-ABC-Algorithm:MATLAB改进的ABC算法
- atp-website:Surigao del Sur行动追踪和保护网站
- 家居装饰:使用虚拟现实的家居装饰
- LKCMS日历黄历修正版 v1.0