ARM技术论坛
直播中

HCPcry

8年用户 1192经验值
擅长:处理器/DSP
私信 关注
[资料]

使用开源工具Address Sanitize致力于Go工具链的优化和特性的支持

1、使用Address sanitizer自动检测Go应用中的内存错误

内存访问错误,包括缓冲区溢出和释放堆内存的使用,仍然是C和C++等编程语言的严重问题。这些错误既影响了系统的稳定性,也影响了程序的安全性,因为很多恶意代码可以通过内存错误来完成入侵。另外,内存错误的排查是困难的,很多时候导致问题的地方和发生问题的地方相隔甚远。Google旗下的开源工具Address Sanitizer可以帮助我们检测此类错误。

Address Sanitizer

Address Sanitizer(ASan)是一个快速的内存错误检测工具,它可以检测以下问题:

访问已被释放的内存

堆上缓冲区访问溢出

栈上缓冲区访问溢出

全局缓冲区访问溢出

内存泄漏

在终端运行命令go build -asan case1.go编译程序, 然后运行./case1程序会打印出下面的错误信息:

原作者:Fannie_Zhang

更多回帖

发帖
×
20
完善资料,
赚取积分