admin管理员组文章数量:1530080
1.C/C++统计内存泄漏问题
对于查找代码中存在的内存泄漏问题,我们可以使用valgrind工具来检查是否存在内存泄漏问题。比如下面的程序,在堆空间分配20个字节后,程序结束以前并没有释放掉这部分内存。
#include <stdio.h>
#include <stdlib.h>
#include <string.h>
int main(int argc, char** argv) {
char * output = (char *)malloc(sizeof(char) * 20);
char * src = "check memory";
if(!output) {
fprintf(stderr, "alloc memory failed.");
}
memcpy(output, src, strlen(src));
printf("Output:%s\n",output);
return 0;
}
在使用下面指令编译生成可执行文件运行后,代码中并没有出现任何异常。
gcc main.c -o main
yongli.tong@tj06009pcu:~/code/slog/test$ ./main
Output:check memory
我们可以使用valgrind运行后,能够看到如下问题,从输出来看,提示有20bytes的内存泄漏,但是提示如果查看完整信息,需要增加--leak-check=full的字段。
yongli.tong@tj06009pcu:~/code/slog/test$ valgrind ./
版权声明:本文标题:CC++统计内存泄漏问题和代码覆盖率的方法 内容由热心网友自发贡献,该文观点仅代表作者本人, 转载请联系作者并注明出处:https://m.elefans.com/dongtai/1725886764a1047102.html, 本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌抄袭侵权/违法违规的内容,一经查实,本站将立刻删除。
发表评论