-
拷贝一个初始内存分配
$ cat /proc/<PID>/smaps > smaps.1 -
运行一段时间后,再做一个拷贝内存分配
$ cat /proc/<PID>/smaps > smaps.2 -
比较两者差异
$ vimdiff smaps.1 smaps.2
image.png
这里可以看到在[0x012ed000, 0x0130e000]之间有明显的内容使用增加情况。
- 用gdb dump出这个内存空间的内容到本地文件
$ gdb -p <PID> \
-ex="dump memory m.dump 0x012ed000 0x0130e000" \
-ex="set confirm off" \
-ex="quit"
- 检查m.dump的内容,看看是不是有你相熟的内容,再对照源代码里哪些位置是生成和处理这些数据的。
$ strings m.dump















网友评论