fd泄漏检测

本文介绍了Android设备中检测FD泄漏的方法,特别是利用高通的leakdetect工具,配合adb命令进行监控,并通过分析hprof文件来定位泄漏源头。总结了从调用栈入手解决FD泄漏问题的有效流程。
摘要由CSDN通过智能技术生成

一.摘要

我们在分析fd泄漏问题的时候一般的通用方法是在/proc/pid/fd下不断的ls -al | wc -l统计fd数量,并且查看哪个fd不断的增多,然后再去代码中排查对应的代码,有时候光看fd并不容易找到泄漏的地方。本文章将介绍高通的leakdetect方法。

 

二.leakdetect使用介绍

默认情况下手机已经包含了fd泄漏的检测代码,具体路径在:bionic/libc/malloc_debug/,它可以监控:file(1),socket(2),mmap(3)

具体原理就不多说了,有兴趣的自己看源码吧,下边介绍使用方法:

1.adb root 

2.adb shell setprop libc.debug.leakdetect 1(1代表监控file,2代表监控socket,3代表监控mmap)

3.adb shell setprop libc.debug.leakdetect.program app_process(安卓进程填app_process,native进程填对应的进程名字)

4.adb shell stop 

5.adb shell start

6.adb shell kill -28 pid(你要监控的进程)

7.当你的fd不断增加的时候再次输入:adb shell kill -28 pid

你会在logcat中看到对应的结果:O机器关键字:fd_leak_debug Q机器关键字:malloc_debug

 

三.结果展示

file泄漏检测结果&#

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值