1

我们发生了某种巨大的内存泄漏,并且我们的进程的驻留内存呈指数级增长。

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 的原因

4

1 回答 1

1

你参考你的过程。这是您编写的程序,您可以控制和访问源代码吗?或者这是一些第三方提供的程序?

如果这是某个第三方程序,您别无选择,只能提交错误,并希望他们能够解决它。

如果这是您自己的代码,您将需要使用工具来调试内存泄漏。根据所使用的编程语言和库,您可以使用不同的工具。

Valgrind就是一个这样的工具。

于 2014-04-24T16:39:37.160 回答