linux利用进程信息定位内存泄漏采用pmap

比如进程id:1381
由于带有虚拟函数的类实例在new时再内存heap中会有对应的虚函数表,所以我们可以通过这个切入点来分析heap中的各类实例的统计数,然后进一步根据实例的数量判断是否存在内存泄漏。

gdb attach 1381

1
2
3
4
5
(gdb) shellp pmap 1381
(gdb) set height 0 ----自动,不需要手动
(gdb) set logging on ----开启调试写日志gdb.txt
Copying output to gdb.txt.
(gdb) x/13087744a 0x0000000001d6b000

13087744a 表示打印13087744个地址,该值是由heap的大小计算出来的:1024*102248/8 (一个64位机器系统上的指针长度)

参考:
利用进程信息gdb pmap进行内存泄漏定位

坚持原创技术分享,您的支持奖鼓励我继续创作!