2

我正在开发一个多线程应用程序,它似乎在运行期间分配了大量内存。所有内存都在执行结束时被释放,因此 valgrind 没有显示内存泄漏。我尝试使用 massif 工具找出发生了什么,但 ms_print 似乎只显示有关主线程的信息。但是,我相信绝大多数内存是在子线程中分配的。是否可以让地块显示有关它们的信息?

4

2 回答 2

0

对我(Ubuntu 12.04)来说,这似乎默认工作。就像在您的应用程序中一样,我的主线程不做任何事情(除了处理我的基于 gtk 的 UI),并且所有(取消)分配都在子线程中完成。

我最初确实遇到了一些困难,因为我正在分析一个基于 autotools 的项目,并且在我的第一次尝试中,我正在分析由 libtool 生成的 shell 脚本,而不是我的应用程序。

于 2012-10-11T05:23:51.607 回答
-1

你可以设置--trace-children=yes [default:no]

启用后,Valgrind 将跟踪通过 exec 系统调用启动的子进程。这对于多进程程序是必要的。

地块手册

于 2017-05-28T10:51:18.013 回答