Valgrind Massif - 内存分配的起点 [cpp]

问题描述 投票:0回答:1

我刚刚开始接触 Valgrinds massif 工具,想知道是否可以引入一个检查点来开始监视堆分配。

考虑以下基本示例:

#include <iostream>

int main()
{
    int  nrOfElements= 10; 
    uint32_t *a[nrOfElements]; 

    for(int i=0; i<nrOfElements; i++)
    {
         a[i] = new uint32_t(i);
    }

return 0; 
}

编译它,运行 valgrind (valgrind --tool=massif --time-unit=B ./program) 并执行 ms_print Massif.out.3***** 返回以下内存表:

enter image description here

在这里我们可以看到,标准库分配了 72,704 字节的初始堆内存。由于我只对从主程序开始的内存分配感兴趣,我想知道我该如何做到这一点? 是否有类似检查点的东西,可以引入它来仅监视某个区域的内存分配?

c++ memory valgrind
1个回答
0
投票

Massif 没有打开和关闭仪器的机制。

查看

--ignore-fn=
选项,特别是针对您的示例
--ignore-fn=call_init.part.0
。您可以重复使用此选项来过滤掉多个函数。

© www.soinside.com 2019 - 2024. All rights reserved.