C++初学者指南-4.诊断—Valgrind
Valgrind(内存错误检测工具)
-
检测常见运行时错误
- 读/写释放的内存或不正确的堆栈区域
- 使用未初始化的值
- 不正确的内存释放,如双重释放
- 滥用内存分配函数
- 内存泄漏–非故意的内存消耗通常与程序逻辑缺陷有关,这些缺陷会导致内存指针在重新分配前丢失
- Windows:
- Dr. Memory(www.drmemory.org) (Windows下的内存检测工具)
- 64位Windows10:Valgrind in WSL
valgrind的命令选项:
–tool=memcheck | 检测你程序的内存 |
–leak-check=full | 查看内存泄漏的详细信息 |
-v / --verbose | 显示一些额外信息 |
Valgrind Tools
–tool=memcheck | 泄漏、无效读取/写入检测 |
–tool=callgrind | 运行时分析 |
–tool=cachegrind | 缓存分析 |
–tool=massif | 堆内存分析 |
–tool=helgrind | 锁序违例检测 |
–tool=drd | 多线程错误检测 |