您的位置:首页 > 运维架构 > Linux

linux kernel debug

2015-01-19 10:40 218 查看
1. 如何打印 pr_debug的信息
adb root
adb remount
adb shell
echo 'file xxx.c +p' > /sys/kernel/debug/dynamic_debug/control
echo 'file xxx.c +p' > /sys/kernel/debug/dynamic_debug/control
stop logs4android

adb shell cat /proc/kmsg | tee kernel.txt

adb root  && adb remount && adb shell "echo 'file sprdfb_main.c +p' > /sys/kernel/debug/dynamic_debug/control"
&& adb shell stop slog && adb shell cat /proc/kmsg | tee 333.txt

2.抓取framebuffer
adb shell gsnap /data/1.jpg /dev/graphics/fb0
adb shell screencap -p /data/pic.png

3.log同时输出到conole与file
adb shell logcat | tee user.txt
adb shell cat /proc/kmsg | tee kernel.txt

4.关闭一个cpu
xxxx上双核关闭一个,只跑cpu0
echo 0 > sys/devices/system/cpu/cpu1/online

5.android中某文件仅打印特定log
#define LOG_TAG "xxxx"
#define LOGI(fmt, args...) __android_log_print(ANDROID_LOG_DEBUG, LOG_TAG, fmt, ##args)
LOGI("display %d", aaa);

6.property get调试方法
1.代码中加上property_get("key", *value, *default_value)
并一句get到的value值(返回值)进行处理
2.用adb触发条件
adb root
adb shell setprop "key" value

7.开启hwc的log
sudo adb shell
setprop debug.hwc.info 1

8.dumpsys SurfaceFlinger

9.关闭light sleep
echo 0 > /sys/module/cpuidle_scx35/parameters/light_sleep_en


10. locat print all message

logcat -b all -v threadtime -v usec -v printable -D -f /data/zslogs/logcat/logcat -r 4096 -n 128

# -b all: print all

# -v threadtime: print current time

# -v usec: make sure the time unit is usec

# -v printable: not sure

# -D: 分离kernel与logcat来显示

# -f: save to file system

# -r: size to be saved of per file

# -n: number of files



10. 离线日志

on post-fs-data
#zs_logcatd service ready to go
mkdir /data/zslogs 0755 log log
setprop ro.zslogd.ready 1

on property:ro.build.type=eng && property:ro.zslogd.ready=1
setprop persist.zslogd.logcatd zs_logcatd
setprop persist.zslogd.battd zs_battd
#setprop persist.zslogd.tcpdumpd zs_tcpdumpd

on property:ro.build.type=userdebug && property:ro.zslogd.ready=1
setprop persist.zslogd.logcatd zs_logcatd
setprop persist.zslogd.battd zs_battd
#setprop persist.zslogd.tcpdumpd zs_tcpdumpd

on property:persist.sys.zs.pm.beta=true && property:ro.zslogd.ready=1
setprop persist.zslogd.logcatd zs_logcatd
setprop persist.zslogd.battd zs_battd
#setprop persist.zslogd.tcpdumpd zs_tcpdumpd

on property:persist.zslogd.logcatd=zs_logcatd
# all exec/services are called with umask(077), so no gain beyond 0700
mkdir /data/zslogs/logcat 0755 log log
start zs_logcatd

on property:persist.zslogd.logcatd=0
stop zs_logcatd

service zs_logcatd /system/bin/logcat -b all -v threadtime -v usec -v printable -D -f /data/zslogs/logcat/logcat -r 4096 -n 128class late_start
user log
group log
disabled
seclabel u:r:zs_logcatd:s0
writepid /dev/cpuset/system-background/tasks


11. Android System Information and How to enable light/deep sleep

grover:/ # dumpsys deviceidle -h
dumpsys deviceidle -h
Device idle controller (deviceidle) commands:
help
Print this help text.
step [light|deep]
Immediately step to next state, without waiting for alarm.
force-idle [light|deep]
Force directly into idle mode, regardless of other device state.
force-inactive
Force to be inactive, ready to freely step idle states.
unforce
Resume normal functioning after force-idle or force-inactive.
get [light|deep|force|screen|charging|network]
Retrieve the current given state.
disable [light|deep|all]
Completely disable device idle mode.
enable [light|deep|all]
Re-enable device idle mode after it had previously been disabled.
enabled [light|deep|all]
Print 1 if device idle mode is currently enabled, else 0.
whitelist
Print currently whitelisted apps.
whitelist [package ...]
Add (prefix with +) or remove (prefix with -) packages.
tempwhitelist
Print packages that are temporarily whitelisted.
tempwhitelist [-u] [package ..]
Temporarily place packages in whitelist for 10 seconds.
grover:/ # dumpsys deviceidle enabled
dumpsys deviceidle enabled
0
grover:/ # dumpsys deviceidle enable all
dumpsys deviceidle enable all
Deep idle mode enabled
Light idle mode enable
grover:/ # dumpsys deviceidle enabled
dumpsys deviceidle enabled
1
grover:/ # dumpsys deviceidle whitelist
dumpsys deviceidle whitelist
system-excidle,com.android.providers.downloads,10010
system,com.android.providers.downloads,10010
grover:/ # PS D:\adb>

grover:/ # dumpsys deviceidle
dumpsys deviceidle
Settings:
light_after_inactive_to=+5m0s0ms
light_pre_idle_to=+10m0s0ms
light_idle_to=+5m0s0ms
light_idle_factor=2.0
light_max_idle_to=+15m0s0ms
light_idle_maintenance_min_budget=+1m0s0ms
light_idle_maintenance_max_budget=+5m0s0ms
min_light_maintenance_time=+5s0ms
min_deep_maintenance_time=+30s0ms
inactive_to=+15m0s0ms
sensing_to=+4m0s0ms
locating_to=+30s0ms
location_accuracy=20.0m
motion_inactive_to=+10m0s0ms
idle_after_inactive_to=+15m0s0ms
idle_pending_to=+5m0s0ms
max_idle_pending_to=+10m0s0ms
idle_pending_factor=2.0
idle_to=+1h0m0s0ms
max_idle_to=+6h0m0s0ms
idle_factor=2.0
min_time_to_alarm=+1h0m0s0ms
max_temp_app_whitelist_duration=+5m0s0ms
mms_temp_app_whitelist_duration=+1m0s0ms
sms_temp_app_whitelist_duration=+20s0ms
notification_whitelist_duration=+30s0ms
Whitelist (except idle) system apps:
com.android.providers.downloads
Whitelist system apps:
com.android.providers.downloads
Whitelist (except idle) all app ids:
10010
Whitelist all app ids:
10010
mLightEnabled=false  mDeepEnabled=false
mForceIdle=false
mMotionSensor={Sensor name="Significant Motion Detector", vendor="QTI", version=2, type=17, maxRange=1.0, resolution=1
.0, power=0.12998962, minDelay=-1}
mCurDisplay=Display id 0: DisplayInfo{"Built-in Screen", uniqueId "local:0", app 240 x 204, real 240 x 204, largest ap
p 240 x 204, smallest app 204 x 168, mode 1, defaultMode 1, modes [{id=1, width=240, height=204, fps=-1.0E9}], colorTran
sformId 1, defaultColorTransformId 1, supportedColorTransforms [{id=1, colorTransform=0}], hdrCapabilities android.view.
Display$HdrCapabilities@61017e2, rotation 0, density 240 (160.421 x 161.925) dpi, layerStack 0, appVsyncOff 0, presDeadl
ine 999999, type BUILT_IN, state DOZE_SUSPEND, FLAG_SECURE, FLAG_SUPPORTS_PROTECTED_BUFFERS}, DisplayMetrics{density=1.5
, width=240, height=204, scaledDensity=1.5, xdpi=160.421, ydpi=161.925}, isValid=true
mScreenOn=false
mNetworkConnected=false
mCharging=true
mMotionActive=false
mNotMoving=false
mLocating=false mHasGps=false mHasNetwork=false mLocated=false
mState=ACTIVE mLightState=ACTIVE
mInactiveTimeout=+15m0s0ms
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: