美文网首页
sanitizer 内存泄露检查工具的使用

sanitizer 内存泄露检查工具的使用

作者: 懒生活 | 来源:发表于2021-09-15 18:32 被阅读0次

sanitizer 内存泄露检查工具的使用

sanitizer的背景

Address sanitizer是google开发的用于检测内存泄露的工具。主要检测use-after-free, 和 memory leaks。sanitizer需要在编译的时候对可能泄露的内存进行标记,所有编译的时候需要带着sanitizer一起编译,高版本的gcc已经集成了sanitizer(gcc大于4.8)。 sanitizer的官网位置可以在github中检索到。

编译时调用sanitizer

-g是告诉编译器编译时把符号表等调试信息编译进来
-fsanitize=address 编译标志是告诉编译器编译时调用address sanitizer
-static-libasan标志是告诉连接器,把address sanitizer库链接进来。
所以使用的时候,如果你的编译分两个命令,注意编译的时候要加-g -fsanitize标志。 然后链接的时候要加-fsanitize -static-libasan标志。举例如下:

gcc -c main.c -fsanitize=address -g
gcc main.o -o main -fsanitize=address -static-libasan

当然编译命令也可以一步到位如下
gcc main.c -o main -fsanitize=address -static-libasan -g

相关文章

网友评论

      本文标题:sanitizer 内存泄露检查工具的使用

      本文链接:https://www.haomeiwen.com/subject/anklgltx.html