valgrind----告警

时间:2021-08-30
本文章向大家介绍valgrind----告警,主要包括valgrind----告警使用实例、应用技巧、基本知识点总结和需要注意事项,具有一定的参考价值,需要的朋友可以参考一下。

Valgrind调试代码时的一些错误提示解析

ciaiy 2018-07-29 22:46:10 3312 收藏 4
文章标签: valgrind 内存泄露
版权
最近在写代码的时候, 发现了极其严重的内存泄漏. 娄神帮我找bug时, 使用了valgrind这个软件. Valgrind是一款用于内存调试、内存泄漏检测以及性能分析的软件开发工具.
下面解析一些常见的错误 :

1.
==3185== Use of uninitialised value of size 8
==3185== at 0x108602: main (a.c:6)

这种情况是很常见的, 原因是使用了未初始化的的地址, 这时候应该查看一下程序是否使用了未初始化的指针
1
2.

==3223== Invalid write of size 4
==3223== at 0x108602: main (a.c:6)8
==3223== Address 0x0 is not stack’d, malloc’d or (recently) free’d

这个错误原因是往错误的地址写入值, 这时候我们也应该查看一下程序用未初始化的指针赋值, 或者指针未被赋值.
和这个错误相对应的, 还有Invalid read of size 4错误提示.
1
2
3.
==3397== Conditional jump or move depends on uninitialised value(s)
==3397== at 0x108656: main (in /home/ciaiy/Desktop/codingSpace/c/free/a)

这个错误原因是变量未被初始化, 就被使用
1
4.
==3886== Invalid free() / delete / delete[] / realloc()
==3886== at 0x4C2CE1B: free (vg_replace_malloc.c:530)
==3886== by 0x1086CD: main (a.c:10)

这个错误原因是free掉了不属于自己的空间, 错误原因有可能是指针指向的内存不再属于它了
1
5.
==3839== HEAP SUMMARY:
==3839== in use at exit: 412 bytes in 1 blocks
==3839== total heap usage: 2 allocs, 1 frees, 924 bytes allocated

最后一个是堆内存分析, 如上面的提示所示, 程序在退出时, 仍有412字节的空间未被free
————————————————
版权声明:本文为CSDN博主「ciaiy」的原创文章,遵循CC 4.0 BY-SA版权协议,转载请附上原文出处链接及本声明。
原文链接:https://blog.csdn.net/ciaiy/article/details/81276155

有时候,不小心知道了一些事,才发现自己所在乎的事是那么可笑。

原文地址:https://www.cnblogs.com/axjlxy/p/15205093.html