使用Memcheck检测内存泄露
在Valgrind工具套件的Memcheck工具中,您可以检测与应用程序内存管理相关的问题。将该工具与GDB调试器一起使用。当检测到问题时,应用程序会中断,您可以对其进行调试。
注意:您可以在Linux上本地安装和运行Memcheck。您可以从任何计算机上的远程主机或设备上运行它。在Windows上,您可以使用Heob堆观察器来接收类似的结果。
下载并安装Valgrind工具后,您可以使用Qt Creator中的Memcheck。
要检测应用程序中的内存泄露
- 转到项目模式,并选择一个调试构建配置。
- 在模式选择器中,选择调试 > Memcheck。
- 选择以启动应用程序。
- 使用应用程序进行分析。
- 选择以在内存问题中查看分析结果。
查看内存问题
当应用程序运行时,Memcheck执行以下操作
- 检查所有内存的读取和写入。
- 拦截分配或释放内存或创建或删除内存块的调用。
您可以在停止Memcheck时查看结果。
选择一行以查看内存泄露发生的位置和显示其原因的堆栈跟踪。
作为一种收集数据的替代方案,选择将XML格式的外部日志文件加载到Memcheck视图中。
将鼠标移至行上以查看有关函数的更多信息。
要逐行移动,选择或。
要筛选结果,选择,然后选择在视图中显示的问题类型。您可以看到和隐藏确定性和可能的内存泄露、未初始化的值、无效的free()
调用和外部错误。
有关使用Memcheck的更多信息,请参阅Valgrind文档中的解释Memcheck输出。
参考以下:如何:分析、分析函数执行、在外部应用程序上运行 Valgrind 工具、为项目指定 Valgrind 设置、分析器、Valgrind Callgrind、Valgrind Memcheck 和 代码分析。
©2024 泛泰公司有限公司。本文件中所包含的文档贡献版权属于各自的拥有者。本文件提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 和相关标志是芬兰的泛泰公司及其它全球国家/地区的商标。所有其他商标均为其各自所有者的财产。