2012-09-07 77 views
1

我正在開發一個多線程應用程序,它似乎在其運行時分配了大量的內存。所有內存在執行結束時被釋放,所以valgrind顯示沒有內存泄漏。我試圖使用地塊工具來查明發生了什麼,但ms_print似乎只顯示有關主線程的信息。但是,我相信絕大多數內存是在子線程中分配的。是否有可能使地塊顯示有關它們的信息?Massif工具是否可以與多線程應用程序正常工作?

+0

你用什麼樣的線程?你如何分配內存?特別是,你是直接使用mmap嗎? –

回答

0

對我來說(Ubuntu 12.04),這似乎默認工作。就像在你的應用程序中一樣,我的主線程並沒有做任何事情(除了處理我的基於gtk的UI),並且所有的(de)分配都是在子線程中完成的。

我確實有一些初始難點,因爲我正在分析一個基於自動工具的項目,而且在我第一次嘗試分析由libtool生成的shell腳本時,而不是我的應用程序。

-1

您可以設置--trace-children=yes [default:no]

啓用後,將Valgrind的跟蹤到通過exec系統調用啓動的子進程。這對於多進程程序是必需的。

massif manual

+1

這是爲進程而不是線程。 –

相關問題