当前位置: 首页 > news >正文

【linux】使用g++调试内存泄露:AddressSanitizer

1、简介

AddressSanitizer(又名 ASan)是 C/C++ 的内存错误检测器。它可以用来检测:

释放后使用(悬空指针)
堆缓冲区溢出
堆栈缓冲区溢出
全局缓冲区溢出
在作用域之后使用
初始化顺序错误
内存泄漏

这个工具非常快,只将被检测的程序速度减慢约2倍,而Valgrind将会是程序减慢10倍。

官网:https://github.com/google/sanitizers

AddressSanitizer包括一个编译器instrumentation模块和一个提供malloc()/free()替代项的运行时库。
从gcc 4.8开始,AddressSanitizer成为gcc的一部分。当然,要获得更好的体验,最好使用4.9及以上版本,因为gcc 4.8的AddressSanitizer还不完善,最大的缺点是没有符号信息。

2、使用

2.1 测试源码

测试源码:

#include <iostream>
#in
http://www.lryc.cn/news/303342.html

相关文章:

  • 第三百五十七回
  • 新版Java面试专题视频教程——框架篇
  • 网络爬虫实战 | 上传以及下载处理后的文件
  • Linux--shell编程中有关while循环的详细内容
  • 回归测试与重新测试
  • java 版本企业招标投标管理系统源码+多个行业+tbms+及时准确+全程电子化
  • 详解动态内存管理!
  • iocp简单例子
  • HAL STM32 HW I2C DMA + SSD1306/SH1106驱动示例
  • grafana配置钉钉告警模版(一)
  • 佳能2580的下载手册
  • YOLO-World:实时开放词汇目标检测
  • Unity中关于群组的一些组件
  • 面向对象详解,面向对象的三大特征:封装、继承、多态
  • 【阿里云服务器的一些使用坑】都是无知的泪水呀
  • Docker的常用命令||Docker是个流行的容器化平台,它允许你打包、分发和运行应用程序。
  • 汽车电子论文学习--电动汽车电机驱动系统动力学特性分析
  • c++的一些陌生用法记录
  • Vue | (三)使用Vue脚手架(中)| 尚硅谷Vue2.0+Vue3.0全套教程
  • TenorFlow多层感知机识别手写体
  • Java基础(二十六):Java8 Stream流及Optional类
  • qt - 19种精美软件样式
  • vue 使用docx库生成word表格文档
  • ElementUI table表格组件实现双击编辑单元格失去焦点还原,支持多单元格
  • Java基于SpringBoot+Vue的图书管理系统
  • 【云安全】Hypervisor与虚拟机
  • JS文本加密方法探究
  • 推荐彩虹知识付费商城免授权7.0源码
  • 【天衍系列 04】深入理解Flink的ElasticsearchSink组件:实时数据流如何无缝地流向Elasticsearch
  • 一、ActiveMQ介绍