在使用arm64的设备开发时,遇到内存相关问题,如malloc,new以及内存两次释放,通过gdb调试无法看出问题,因此需要使用Valgrind中的Memcheck工具进行调试,但是oem未提供相关工具,需要自己编,编译是在ubuntu中编译,在arm64中使用,因此需要进行交叉编译,这里记录下编译此工具方法及步骤。
1、Valgrind简介
Valgrind 是一个开源的内存调试工具集,用于检测内存泄漏、内存损坏等问题。它包含多个工具,其中最为常用的有 Memcheck 和 Cachegrind 等。Memcheck 可以检测程序中的内存泄漏、未初始化的内存访问等问题,而 Cachegrind 则用于性能分析。
在使用 Valgrind 时,开发者通常会将待测试的程序运行在 Valgrind 所提供的模拟环境中,通过 Valgrind 的工具来检测程序运行时的行为,从而找出潜在的错误或性能瓶颈。例如,如果你在程序中使用了动态分配的内存但未能正确释放,Valgrind 的 Memcheck 工具就能够检测到这种内存泄漏情况并给出相应的警告。
2.下载源码
选择自己需要的版本进行下载
https://sourceware.org/pub/valgrind/
3、依赖工具
Valgrind在编译时需要使用automake中的工具,如果没有automake,则需要在编译环境中安装,如果已经有,则不需要执行此步骤。
- 查看当前是否安装automake