使用Memcheck检测内存泄露

在Valgrind工具套件的Memcheck工具中,您可以检测与应用程序内存管理相关的问题。将该工具与GDB调试器一起使用。当检测到问题时,应用程序会中断,您可以对其进行调试。

注意:您可以在Linux上本地安装和运行Memcheck。您可以从任何计算机上的远程主机或设备上运行它。在Windows上,您可以使用Heob堆观察器来接收类似的结果。

下载并安装Valgrind工具后,您可以使用Qt Creator中的Memcheck。

要检测应用程序中的内存泄露

  1. 转到项目模式,并选择一个调试构建配置。
  2. 在模式选择器中,选择调试 > Memcheck

    {Memcheck view}

  3. 选择以启动应用程序。
  4. 使用应用程序进行分析。
  5. 选择以在内存问题中查看分析结果。

查看内存问题

当应用程序运行时,Memcheck执行以下操作

  • 检查所有内存的读取和写入。
  • 拦截分配或释放内存或创建或删除内存块的调用。

您可以在停止Memcheck时查看结果。

选择一行以查看内存泄露发生的位置和显示其原因的堆栈跟踪。

作为一种收集数据的替代方案,选择将XML格式的外部日志文件加载到Memcheck视图中。

将鼠标移至行上以查看有关函数的更多信息。

要逐行移动,选择

要筛选结果,选择,然后选择在视图中显示的问题类型。您可以看到和隐藏确定性和可能的内存泄露、未初始化的值、无效的free()调用和外部错误。

有关使用Memcheck的更多信息,请参阅Valgrind文档中的解释Memcheck输出

参考以下:如何:分析分析函数执行在外部应用程序上运行 Valgrind 工具为项目指定 Valgrind 设置分析器Valgrind CallgrindValgrind Memcheck代码分析

©2024 泛泰公司有限公司。本文件中所包含的文档贡献版权属于各自的拥有者。本文件提供的文档是根据自由软件基金会发布的 GNU 自由文档许可证版本 1.3 的条款许可的。Qt 和相关标志是芬兰的泛泰公司及其它全球国家/地区的商标。所有其他商标均为其各自所有者的财产。