在Qt Creator中使用“分析内存”工具

8
我正在使用Qt Creator开发C++应用程序,并尝试跟踪一些内存泄漏问题。我遵循了 这些说明,并在我的Ubuntu机器上安装了Valgrind。
我从“分析内存”部分开始应用程序,在点击停止按钮后,我被告知工具分析内存完成,发现928个问题。然而,在分析部分中没有显示任何结果,该部分仍然是空白的。
我做错了什么吗?我在哪里可以找到内存分析的结果?
*令人困惑的是,说明要求“发布”构建配置,但选择此选项会在Qt中引发警告,表示内存分析工具需要调试配置。 我已尝试过两种方式。
2个回答

11

我已在我的Qt Creator中检查过,它可以工作。 我正在使用版本为2.3.1,带有Qt 4.7.4和Valgrind 3.7.0的软件。 我已经测试了dropsite示例并使用Debug构建配置进行了测试。 我还使用基于CMake的项目进行了测试(编译时使用-g和-O0标志),也能够正常工作。 确保在启动按钮旁边选择了Valgrind内存分析器。 在同一栏中,您会找到箭头图标。 在它们旁边是一个漏斗图标(我想)。 点击它,确保您感兴趣的错误类型都已选中。

如果它无法工作,并且您不想使用控制台中的Valgrind工具,则还有其他Valgrind GUIs,例如Valkyrie。

编辑:我将Qt Creator更新到版本2.4.0rc1,并将其与我的CMake项目一起检查。 它也没有显示结果,同时报告了数百个问题。 解决方案是在单击漏斗图标后检查外部错误

编辑2: 在最终版本2.4.0中,问题已经被修复。


2
最新的Qt Creator 3.2.1出现了问题。对于“外部错误”,我给一个赞。这对我很有用!谢谢! - mchiasson
仍然存在于3.6.0版本中。修复了外部错误。谢谢! - marmistrz

1
你没有做错任何事情。在Valgrind菜单中,点击过滤器图标,选择外部错误。你会看到所有问题都出现了。这些问题很可能不是来自你的应用程序,而是与Qt或其他相关的,所以你通常可以忽略它们。 X个问题已找到指的是问题的总数;当未选择外部错误时,只会显示与你的应用程序相关的问题。如果没有出现任何问题,则Valgrind没有检测到你的应用程序中有任何内存泄漏。

1
这是否意味着每次外部调用都会发生内存泄漏? - CaptainDaVinci

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接