本文首先简单介绍 asan和hwasan的基本概念和区别,后续文章将详细介绍如何在arm平台 或x86平台,利用asan/hwasan工具对大型协议软件进行内存问题分析。
关注公众号,获取项目实操资料。
ASAN简介
基本概念
ASAN(AddressSanitizer )是一个由 Google 开发的、用于 C 和 C++ 程序的快速内存错误检测工具,它能够在程序运行时检测出多种内存相关的错误,如缓冲区溢出、使用已释放的内存、内存泄漏等,帮助开发者快速定位和修复程序中的内存问题,提高程序的稳定性和可靠性。
工作原理
- 内存分配与检测:AddressSanitizer 通过在程序运行时拦截内存分配和释放函数,如
malloc
、free
、new
、delete
等,来对内存的使用进行监控。当程序分配一块内存时,AddressSanitizer 会在这块内存的周围插入一些额外的检测数据,用于记录内存的状态和边界信息。 - 访问检查:在程序访