我有一个程序,其中有相当数量的静态定义变量。如果我在GDB中启动它,并在main函数上设置断点,然后运行pmap命令,我会看到已经分配了大约100MB的数据:
08838000 107576K rw--- [ anon ]
我已经找到了很多有巨大静态定义数组的函数(例如200,000个整数),并在发现它们后将它们消除掉。
有没有办法找出堆/数据段上最大的项目是什么?无论是通过GDB还是通过其他手段?
我有一个程序,其中有相当数量的静态定义变量。如果我在GDB中启动它,并在main函数上设置断点,然后运行pmap命令,我会看到已经分配了大约100MB的数据:
08838000 107576K rw--- [ anon ]
我已经找到了很多有巨大静态定义数组的函数(例如200,000个整数),并在发现它们后将它们消除掉。
有没有办法找出堆/数据段上最大的项目是什么?无论是通过GDB还是通过其他手段?
nm --size-sort <object-file.o>
c++filt
在更易读(或不太易读,如果您有一个模板对应多个)的形式下进行后处理。 - fork0