tut*_*szy 5 c++ profiling memory-management mtrace
在分析大型应用程序的内存消耗期间,我使用 glibc 中的 mtrace。但问题是它只提供了 malloc 调用的来源,但没有提供完整的堆栈跟踪。因此,如果我在许多地方使用的方法中使用 malloc,我只会报告一个无法区分的 malloc 来源。另一个问题是标准 C 库和通用对象(如 CSimpleArray)。我只知道有人使用了巨大的数组,但不知道到底是谁。
所以我想我需要完整的堆栈跟踪才能知道到底是谁使用了 malloc。你知道 mtrace 是否存在这样的变体吗?或者可以简单地修改它来做到这一点吗?
只是备注一下:我的 mtrace.out 日志包含 300k 行,使用 mtrace 脚本处理后,它有 10k 条目。如果我只定位 10% 最大的块,对我来说就足够了。