我们正在进行某种巨大的内存泄漏,并且我们的进程的驻留内存呈指数级增长。
pmap -x显示如下内容:
...
00007f4ad85cd000 10530276 9129608 9129608 rw--- [ anon ]
....
这个负责泄漏的人
同样cat / proc // smaps显示的内容如下:
7f4b03dfb000-7f4d5b146000 rw-p 00000000 00:00 0
Size: 9817388 kB
Rss: 8547272 kB
Pss: 8547272 kB
Shared_Clean: 0 kB
Shared_Dirty: 0 kB
Private_Clean: 0 kB
Private_Dirty: 8547272 kB
Referenced: 6971056 kB
Anonymous: 8547272 kB
AnonHugePages: 0 kB
Swap: 80732 kB
KernelPageSize: 4 kB
现在怎么样?接下来我可以做些什么来弄清楚可能导致问题的原因?如何进一步调试?没有核心,真正的旧代码 - 没有人知道在哪里添加日志。
我如何弄清楚7f4b03dfb000-7f4d5b146000的作用
答案 0 :(得分:1)
您可以参考您的流程。这是您编写的程序,您可以控制和访问源代码吗?或者这是第三方提供的程序吗?
如果这是第三方程序,你别无选择,只能提交错误,并希望他们可以解决它。
如果这是您自己的代码,您将需要使用工具来调试内存泄漏。根据所使用的编程语言和库,您可以使用不同的工具。
其中一个工具是Valgrind。