mallocDebugCase.sh降低性能运行

mallocCase.sh

adb root
setenforce 0
chmod 0777 /data/local/tmp/
setprop libc.debug.malloc.program android.hardware.camera.provider@2.4-service
setprop libc.debug.malloc.options "guard leak_track free_track verbose backtrace_full"
setprop wrap.com.oplus.camera "LIBC_DEBUG_MALLOC_OPTIONS=backtrace"
ls /sys/devices/system/cpu/cpufreq/
echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
echo performance > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
echo performance > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor

#stop
##setprop libc.debug.malloc.program bruce-leak
#setprop libc.debug.malloc.program android.hardware.camera.provider@2.4-service_64
##setprop libc.debug.malloc.options  "backtrace_enable_on_signal  leak_track  backtrace=8 guard"
##setprop libc.debug.malloc.options  "backtrace_enable_on_signal  leak_track  backtrace=8"
#setprop libc.debug.malloc.options  "leak_track  backtrace=8 guard"
#start

psstr=`ps -A | grep "android.hardware.camera.provider@2.4-service_64"`
pid=`echo $psstr | awk -F ' ' '{print $2}'`
echo "dump pid = "${pid}
ps -A | grep camera
kill -9 $pid #android.hardware.camera.provider@2.4-service_64
psstr=`ps -A | grep "android.hardware.camera.provider@2.4-service_64"`
pid=`echo $psstr | awk -F ' ' '{print $2}'`
echo "dump new pid = "${pid}
#cat /proc/<pid>/smaps | grep malloc_debug

#chg_exchange_mesg: failed to cmd(=0) run, rc=-1
#showmap <pid> > /sdcard/showmap-camx.txt
#showmap <pid> > /sdcard/showmap-app.txt
#dumpsys meminfo android.hardware.camera.provider@2.4-service_64 > /sdcard/meminfo-camx.txt
#dumpsys meminfo com.oplus.camera > /sdcard/meminfo-app.txt
#kill -45 $pid #android.hardware.camera.provider@2.4-service_64
getprop | grep malloc
logcat -s malloc_debug DEBUG
#复现问题 logcat | grep -iE " pc | at "

#kill -47 <pid>  //停止调试并dump backtrace
#am dumpheap -n <pid> /data/local/tmp/temp.txt //不能创建文件时使用

malloc_debug.bat

adb root && adb remount
adb disable-verity
adb push malloc-debug.sh /data/
adb shell chmod 777 /data/malloc.sh
adb shell setenforce 0
adb shell 
rem PAUSE
rem adb reboot

malloc-deug.sh

if [[ $1 == "--help" || $1 == "help" ]]; then
	echo "----------usage-------"
	echo "enable dump records_malloc, the malloc debug will use multiple memeory"
	echo "---------command:  malloc_debug.sh logpath [records_malloc]"
	echo "disable dump records_malloc"
	echo "---------command:  malloc_debug.sh logpath"
	exit
elif [[ $1 == "" ]]; then
	echo "malloc_debug.sh --help"
	exit
fi
 
logpath=$1
records_malloc_enable=$2
 
adb root
adb wait-for-device
#need close selinux, others dump failure
adb shell setenforce 0
 
psstr=`adb shell ps -A | grep "android.hardware.camera.provider@2.4-service_64"`
pid=`echo $psstr | awk -F ' ' '{print $2}'`
echo "dump pid = "${pid}
 
time=$logpath"/"$(date +%m%d%H%M%S)
echo "log path: "$time
mkdir ${time}
 
#get maps and smaps info
adb shell cat /proc/$pid/maps > $time/$pid"_maps"
adb shell cat /proc/$pid/smaps > $time/$pid"_smaps"
 
#get all process info before dump
adb shell ps -AT > ./$time/processinfo.txt
#get current meminfo before dump
adb shell dumpsys meminfo android.hardware.camera.provider@2.4-service_64 > ./$time/meminfo
 
#dump heap trace
adb shell kill -s 47 $pid
 
if [[ $records_malloc_enable == "records_malloc" ]]; then
	#dump records
	adb shell kill -s 46 $pid
fi
 
###################需要按照路径修改#####
dump_path="/data/aa"
records_malloc_file_name="m"
###################需要按照路径修改#####
#check dump file
while true
do
	file_cnt=`adb shell ls $dump_path | wc -l`
	dumpcnt=1
	if [[ $records_malloc_enable == "records_malloc" ]]; then
		dumpcnt=2
	fi
 
	if [[ $file_cnt -eq $dumpcnt ]]; then
		echo `adb shell ls $dump_path`
		break
	fi
	sleep 1
done
 
#find the process name by pid and records pid
#get current meminfo after dump
echo `adb shell dumpsys meminfo android.hardware.camera.provider@2.4-service_64`
 
adb pull $dump_path ./$time
 
dirname="${dump_path##*/}"
 
mv $time/$dirname/* $time
rm -r ./$time/$dirname
#remove the before dump file
adb shell rm $dump_path/*
 
#need open selinux, others some app will crash
adb shell setenforce 1
 
cd $time
 
#--reverse 内存从大到小排序
native_heapdump_viewer.py *$pid*".txt" --symbols ~/Downloads/symbols --reverse > heapdumpfile

malloc.sh

setenforce 0
stop
#setprop libc.debug.malloc.program bruce-leak
setprop libc.debug.malloc.program android.hardware.camera.provider@2.4-service_64
#setprop libc.debug.malloc.options  "backtrace_enable_on_signal  leak_track  backtrace=8 guard"
#setprop libc.debug.malloc.options  "backtrace_enable_on_signal  leak_track  backtrace=8"
setprop libc.debug.malloc.options  "leak_track  backtrace=8 guard"
start

psstr=`ps -A | grep "android.hardware.camera.provider@2.4-service_64"`
pid=`echo $psstr | awk -F ' ' '{print $2}'`
echo "dump pid = "${pid}
ps -A | grep camera
kill -9 $pid #android.hardware.camera.provider@2.4-service_64
psstr=`ps -A | grep "android.hardware.camera.provider@2.4-service_64"`
pid=`echo $psstr | awk -F ' ' '{print $2}'`
echo "dump new pid = "${pid}
#cat /proc/<pid>/smaps | grep malloc_debug

#chg_exchange_mesg: failed to cmd(=0) run, rc=-1
#showmap <pid> > /sdcard/showmap-camx.txt
#showmap <pid> > /sdcard/showmap-app.txt
#dumpsys meminfo android.hardware.camera.provider@2.4-service_64 > /sdcard/meminfo-camx.txt
#dumpsys meminfo com.oplus.camera > /sdcard/meminfo-app.txt
#kill -45 $pid #android.hardware.camera.provider@2.4-service_64
getprop | grep malloc
logcat -s malloc_debug
#复现问题 logcat | grep -iE " pc | at "

#kill -47 <pid>  //停止调试并dump backtrace
#am dumpheap -n <pid> /data/local/tmp/temp.txt //不能创建文件时使用

mallocAPP.sh  app进程

setenforce 0
stop
#setprop libc.debug.malloc.program bruce-leak
#setprop libc.debug.malloc.program com.oplus.camera
setprop wrap.com.oplus.camera "LIBC_DEBUG_MALLOC_OPTIONS=backtrace guard leak_track free_track verbose"
setprop wrap.com.oplus.camera "LIBC_DEBUG_MALLOC_OPTIONS=backtrace=1"
setprop wrap.com.oplus.camera "LIBC_DEBUG_MALLOC_OPTIONS=backtrace"
#setprop libc.debug.malloc.options  "backtrace_enable_on_signal  leak_track  backtrace=8 guard"
#setprop libc.debug.malloc.options  "backtrace_enable_on_signal  leak_track  backtrace=8"
#setprop libc.debug.malloc.options  "leak_track  backtrace=8 guard"
#adb shell "setprop libc.debug.malloc.options backtrace guard leak_track free_track verbose"
setprop libc.debug.malloc.options 'backtrace guard leak_track free_track verbose'
ls /sys/devices/system/cpu/cpufreq/
echo performance > /sys/devices/system/cpu/cpufreq/policy0/scaling_governor
echo performance > /sys/devices/system/cpu/cpufreq/policy4/scaling_governor
echo performance > /sys/devices/system/cpu/cpufreq/policy7/scaling_governor
start

psstr=`ps -A | grep "com.oplus.camera"`
pid=`echo $psstr | awk -F ' ' '{print $2}'`
echo "dump pid = "${pid}
ps -A | grep camera
kill -9 $pid #android.hardware.camera.provider@2.4-service_64
psstr=`ps -A | grep "com.oplus.camera"`
pid=`echo $psstr | awk -F ' ' '{print $2}'`
echo "dump new pid = "${pid}
#cat /proc/<pid>/smaps | grep malloc_debug

#chg_exchange_mesg: failed to cmd(=0) run, rc=-1
#showmap <pid> > /sdcard/showmap-camx.txt
#showmap <pid> > /sdcard/showmap-app.txt
#dumpsys meminfo android.hardware.camera.provider@2.4-service_64 > /sdcard/meminfo-camx.txt
#dumpsys meminfo com.oplus.camera > /sdcard/meminfo-app.txt
#kill -45 $pid #android.hardware.camera.provider@2.4-service_64
getprop | grep malloc
logcat -s malloc_debug
#复现问题 logcat | grep -iE " pc | at "

#kill -47 <pid>  //停止调试并dump backtrace
#am dumpheap -n <pid> /data/local/tmp/temp.txt //不能创建文件时使用

 

 

 

 

 

 

 

 

 

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包

打赏作者

一起搞IT吧

你的鼓励将是我创作的最大动力

¥1 ¥2 ¥4 ¥6 ¥10 ¥20
扫码支付:¥1
获取中
扫码支付

您的余额不足,请更换扫码支付或充值

打赏作者

实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值