【发布时间】:2018-08-15 07:46:02
【问题描述】:
我从控制台运行 valgrind 版本 3.12.0,如下所示:
valgrind --log-file="valgrind.log" --leak-check=yes ./application -param
日志似乎在应用程序运行时被污染了,这已经很有趣了,因为我认为在应用程序仍在运行时不能 100% 确定地检测到内存泄漏。我猜在某些情况下(可能是线程)这不是真的,而 valgrind 足够聪明,可以尽早捕捉到这些情况?
真正困扰我的是,有多个“泄漏摘要”包含或多或少相同的信息。在我看来,后期记录的摘要包含更多信息。
您将在下面找到在我的 Qt 应用程序上执行的 valgrind 的输出。我用记事本列出了所有“肯定”丢失的条目。您可以看到有大量的泄漏摘要,我不知道为什么包含的信息几乎相同。尤其是 QApplication 的构造函数泄漏的 15 个字节非常奇怪,因为它一次又一次地包含在每个摘要中。 valgrind 如何决定何时创建这样的摘要?
【问题讨论】:
-
看起来每个报告中的进程id都不一样。这些报告可能来自分叉的进程,这些进程在没有执行另一个程序的情况下死亡。
标签: qt memory-leaks valgrind memcheck