来源:自学PHP网 时间:2015-04-14 11:12 作者: 阅读:次
[导读] Solaris下使用mdb检查内存泄露步骤一:UMEM_DEBUG=default UMEM_LOGGING=transaction LD_PRELOAD=libumem.so.1 ./spAgent www.2cto.com 步骤二:-bash-3.00$ mdb -p 16546 //上面得到进程IDLoading ......
Solaris下使用mdb检查内存泄露
步骤一:
UMEM_DEBUG=default UMEM_LOGGING=transaction LD_PRELOAD=libumem.so.1 ./spAgent &
www.2cto.com
步骤二:
-bash-3.00$ mdb -p 16546 //上面得到进程ID
Loading modules: [ ld.so.1 libumem.so.1 libc.so.1 ]
步骤三:
-bash-3.00$ mdb -p 16546
Loading modules: [ ld.so.1 libumem.so.1 libc.so.1 ]
> ::findleaks //查找内存泄露
CACHE LEAKED BUFCTL CALLER
00484008 11489 00a7f428 libstdc++.so.6.0.3`_Znwj+0x1c
----------------------------------------------------------------------
Total 11489 buffers, 5147072 bytes
www.2cto.com
步骤四:
> 00a7f428::bufctl_audit //查看最后使用这内存地址的调用堆栈
ADDR BUFADDR TIMESTAMP THREAD
CACHE LASTLOG CONTENTS
a7f428 a85a00 2185ef54480864 47
484008 3165dc 0
libumem.so.1`umem_cache_alloc+0x13c
libumem.so.1`umem_alloc+0x60
libumem.so.1`malloc+0x28
libstdc++.so.6.0.3`_Znwj+0x1c
_ZN6RXConn17HandleSMPPDeliverEPK7AIChunki+0x510
_ZN6RXConn10RecvThreadEv+0x6c4
_ZN6RXConn4RecvEPv+0x20
libc.so.1`_lwp_start
通过以上步骤基本可以定位内存泄露发生在xx函数。
|
自学PHP网专注网站建设学习,PHP程序学习,平面设计学习,以及操作系统学习
京ICP备14009008号-1@版权所有www.zixuephp.com
网站声明:本站所有视频,教程都由网友上传,站长收集和分享给大家学习使用,如由牵扯版权问题请联系站长邮箱904561283@qq.com