07 2023 档案
摘要:在VPP的源码CMakeLists.txt中已经有address sanitizer的编译参数只是默认是OFF的。只要改为ON就可以在VPP代码启用内存检测功能。
阅读全文
摘要:Address Sanitizer集成的原理是在汇编过程中编译出.o文件时就将AddressSanitizer的运行时库替换malloc()/free()实现内存检测功能的。所以可以单独在执行程序(main executable)加Address Sanitizer,也可以在链接库中单独加Address Sanitizer。
阅读全文
摘要:Docker只是提供了一个运行环境,Docker里的程序集成Address Sanitizer与Linux环境编译相比并不需要做任何额外改动。
阅读全文
摘要:Address Sanitizer(asan)是一个内存检测工具,从gcc 4.8开始,Address Sanitizer成为了GCC的一部分。只要在编译自己的代码时加上响应的编译参数就可以很方便的加上内存检测的功能。
这套sanitizer工具包含了三大件:
- Address Sanitizer: 检测指针重复释放问题,堆,栈内存溢出问题。
- Thread Sanitizer[^1]: 线程问题。
- Memory Sanitizer: 内存未初始化问题。
阅读全文