之前做服务器时,一般是linux下的C++, 
C++容易出很多内存问题:内存泄漏、内存越界、野指针 空指针之类的问题。 
linux下 运行时检测工具,有 valgrind,正常编译debug版,然后附加运行就行了, 就是大程序会有比较卡; 也有 AddressSanitizer(ASan) , 编译后直接运行检测。

最近接触一个windows的C++项目, 之前一直苦于没好用的内存检测工具。 最近再查资料发现,VS2019 新的版本,已经带有 AddressSanitizer(ASan) , 虽然还是在测试阶段。
尝试用了一下,还可以。

1、需要安装一下这个工具:

2、项目的属性里, 开启“启用地址擦除系统”:

如果编译报错,根据错误信息调整一下。(比如之前 Debug 不支持 /ZI ,  不过我升级V16.11.xx之后 就没提醒,但是 遇到内存越界不会报错了,所以一定要改成/Zi

3、然后运行exe就行了,如果代码有内存问题,会报错。   不过直接运行exe,若检测到读越界、写越界, 程序都会闪退,常看不到信息。 
处理方案:
一个就是 vs直接调试运行,
一个就是 环境变量里加上 ASAN_OPTIONS  halt_on_error=0:log_path=asan.log   
或者 运行的命令行里执行:set ASAN_OPTIONS=halt_on_error=0:log_path=asan.log

出现问题时,会在 当前exe目录下生成 asan.log.xxxx  (文件名自己定的,后面的数字应该是进程号)

遇到的问题:
(1) 这版项目,Debug 版本引用的几个自己编的.DLL 会出Assert  
Debug Assertion Failed: _CrtIsValidHeapPointer(block)
自己的解决办法是,把对应dll 也开启 asan 重新编一下。。。
(2) halt_on_error=0 参数好像作用不大, 程序还是一检测就闪退,我再研究研究。

其他可以找网上的资料, 看看报错了之后如何定位问题
VS2019中使用AddressSanitizer检测内存问题 - 简书

比如它能比较好的定位到 野指针问题。 
某某行代码 访问xxx内存 有问题
这个内存在哪行代码释放掉了
这个内存是在那行代码分配的之类的。

再好好看看自己的代码,大部分能定位出问题来。   (不过还是有些报错很难定位 - -!)

官方一些资料:
 AddressSanitizer 已知问题 | Microsoft Docs

vs2019 C++自带了内存问题检测工具:AddressSanitizer(ASan)相关推荐

  1. 内存错误检测工具AddressSanitizer原理

    原论文:AddressSanitizer: A Fast Address Sanity Checker 谷歌官方文档:AddressSanitizerAlgorithm 参考博客:Introducti ...

  2. iOS开发之内存泄漏检测工具-Leaks

    引言 我们在实际开发过程中,经常会不小心造成循环引用问题,从而造成内存泄漏问题,那么我们该如何检测我们工程那个位置存在内存泄漏问题呢?这就需要用到Xcode自带的内存泄漏检测工具-Leaks. 内存泄 ...

  3. win10系统自带的计算机无法使用吗,Win10如何使用系统自带的硬件设备检测工具?...

    Win10如何使用系统自带的硬件设备检测工具?在Win10操作系统中,自带有硬件设备检测工具,当我们遇到电脑故障时,可以使用这些检测工具来处理故障.下面小编就来教大家使用电脑自带的硬件设备检测工具! ...

  4. Android内存泄漏检测工具使用手册

    Android内存泄漏检测工具使用手册 前言 LeakCanary 在Android中接入LeakCanary LeakCanary内存泄漏分析 内存泄漏上报到服务端 Shark Shark分析当前应 ...

  5. 计算机自带的配置检测,Windows10系统自带电脑硬件设备检测工具的使用步骤

    windows10系统在使用过程中,有时候会遇到一些系统故障,那么我们可以使用自带的电脑硬件设备检测工具来进行处理,但是很多用户不知道Windows10系统自带电脑硬件设备检测工具如何使用,本文就给大 ...

  6. 计算机自带的配置检测,Win10如何使用系统自带的硬件设备检测工具?

    Win10如何使用系统自带的硬件设备检测工具?在Win10操作系统中,自带有硬件设备检测工具,当我们遇到电脑故障时,可以使用这些检测工具来处理故障.下面小编就来教大家使用电脑自带的硬件设备检测工具! ...

  7. Linux中的常用内存问题检测工具

    原文地址:http://blog.csdn.net/jinzhuojun/article/details/46659155 C/C++等底层语言在提供强大功能及性能的同时,其灵活的内存访问也带来了各种 ...

  8. 几种内存泄露检测工具的比较

    概述 内存泄漏(memory leak)指由于疏忽或错误造成程序未能释放已经不再使用的内存的情况,在大型的.复杂的应用程序中,内存泄漏是常见的问题.当以前分配的一片内存不再需要使用或无法访问时,但是却 ...

  9. 内存问题检测工具的介绍

    C/C++等底层语言在提供强大功能及性能的同时,其灵活的内存访问也带来了各种纠结的问题.但是,在这样灵活操作的后面,还隐藏着很危险的操作,那就是关于内存的问题.一看到内存的问题,大部分的初学者就开始傻 ...

最新文章

  1. PHP 捕获全局异常
  2. 在伦敦工作生活—随笔-1
  3. 图像缩放算法_技术专栏|基于无人机LK光流算法的适用性及其优化方法探究
  4. centos7输入systemctl status network.service出现Unit network.service could not be found的解决办法
  5. java登录界面命令_Java命令行界面(第19部分):jClap
  6. 如何自己塑封_全球市场三足鼎立,国内半导体封测业如何实现可持续发展?
  7. java list 排序_java 对list进行排序
  8. python集合运算_python set集合的基本运算
  9. 【交换机在江湖】第十四章 VLAN通信篇
  10. Keil uVision4 C51完整版
  11. 处理24人!又一批科研不端案例被通报批评
  12. Ubuntu安装后初次配置
  13. 将Flutter添加到现有应用——过程中遇到的问题
  14. mac 不显示 外接屏幕_Mac连接投影仪 Mac外接显示器设置教程
  15. 借助云开发实现小程序朋友圈的发布与展示
  16. 使用Java设计简单的画图工具
  17. VPP-引流到自己节点的方法
  18. YUV RGB格式分析,以及对应码率(带宽)计算
  19. rdesktop远程使用Windows的一些技巧
  20. 课上——HTML 表格 学生成绩表

热门文章

  1. 服务器带宽50M能带动多少人同时在线?
  2. CSS 设置p标签首字母格式
  3. python随机抽号器_python 随机抽取数据
  4. 后台框架--HUI 的学习跟使用1
  5. STM32基础课程笔记
  6. 六张卡片来猜数(哈利波特之心灵感应魔法)
  7. 计算机三维造型 试题,2012上图杯三维建模试题要求
  8. 重装系统“Windows无法安装到这个磁盘中,选中的磁盘具有MBR分区表”
  9. 【Computer Graphics】直线方程及相关计算
  10. virtualbox提示错误 不能为虚拟电脑 centos7 打开一个新任务. Unable to load R3 module C:\Program Files\Oracle\Virtual