valgrind分析说明

前言

cpp程序开发完成之后,总有些内存问题,最近使用valgrind扫描一下程序,发现bug很多,但是valgrind给出的分析结果虽然很详细,但是由于是英文,还是有些不太理解,这里做一下笔记,记录一些常见问题对应的valgrind分析。下次就可以从valgrind的分析去找代码的问题。

使用

先将代码使用-g编译,生成调试符号。然后调用下列命令去启动程序:

1
valgrind --log-file=valReport --leak-check=full --show-reachable=yes --leak-resolution=low  YourProcess

关闭程序之后就会在当前目录生成valReport文件。

分析

1、Mismatched free() / delete / delete []

这里是因为没有把new-delete,malloc-free对应使用,比如new一个堆然后使用free释放内存。

2、Address 0xafa4d80 is 0 bytes inside a block of size 264 alloc’d

3、Conditional jump or move depends on uninitialised value(s)

没有初始化一个变量就直接使用它。


valgrind分析说明
http://yoursite.com/2020/09/02/valgrind分析说明/
作者
还在输入
发布于
2020年9月2日
许可协议