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
相关文章推荐
- Debug Linux Kernel with Qemu
- linux_kernel_debug_tips_根据函数地址定位函数名称
- Linux kernel Low Level debug (DEBUG_LL)
- Linux kernel debug技巧----开启DEBUG选项
- Linux kernel Low Level debug
- Debug a NIC driver in linux(kernel version 2.4.20-8) which running on VMware workstation version 4.5.2
- Kprobe在Linux kernel debug中的应用
- Qemu+Gdb debug linux kernel
- linux kernel debug
- Linux kernel Low Level debug
- linux kernel / android debug notes
- Linux Kernel Debug | 这个人的博客真心不错,包括其他类别
- Debug Linux Kernel with Visual Studio
- Linux Kernel Crash Debug
- Using KGDB debug linux kernel and kernel module
- Kprobe在Linux kernel debug中的应用
- Kprobe在Linux kernel debug中的应用
- android linux kernel debug技术
- from linux kernel to kvm -- debug linux kernel by eclipse
- linux kernel debug 之 CallTrace