当前位置: 首页 > 工具软件 > LogReport > 使用案例 >

android bugreport分析,Bugreport日志分析

赵智
2023-12-01

一、Bugreport

文章Bugreport源码篇(一)从源码角度阐释了Bugreport,那么本文则是从实战角度来说说,如何看懂bugreport,对于通过bugreport获取到内容往往非常长,这里简单划分为19部分,先整体上简单说说每部分log的title信息。

1. 系统build相关信息

系统build信息:

dumpstate: date

Build: getprop ro.build.display.id

Build fingerprint: getprop ro.build.fingerprint

Bootloader: getprop ro.bootloader

Radio: getprop ro.baseband

Network: getprop gsm.operator.alpha

Kernel: dump_file /proc/version

Command line: cat /proc/cmdline

系统运行时间:

------ UPTIME (`uptime`) ------

up time: 00:01:53, idle time: 00:02:44, sleep time: 00:00:00

[uptime: 0.015s elapsed]

up time:系统运行时长

idle time:系统空闲时长

sleep time:系统休眠时长

elapsed: uptime指令执行时长

2. 内存/CPU/进程等信息

下面列举bugreport结果相关项的title,其中括号中内容便是相应的命令

------ UPTIME MMC PERF (/sys/block/mmcblk0/) ------

------ MEMORY INFO (/proc/meminfo) ------

------ CPU INFO (top -n 1 -d 1 -m 30 -t) ------

------ PROCRANK (procrank) ------

------ VIRTUAL MEMORY STATS (/proc/vmstat) ------

------ VMALLOC INFO (/proc/vmallocinfo) ------

------ SLAB INFO (/proc/slabinfo) ------

------ ZONEINFO (/proc/zoneinfo) ------

------ PAGETYPEINFO (/proc/pagetypeinfo) ------

------ BUDDYINFO (/proc/buddyinfo) ------

------ FRAGMENTATION INFO (/d/extfrag/unusable_index) ------

------ KERNEL WAKELOCKS (/proc/wakelocks) ------

------ KERNEL WAKE SOURCES (/d/wakeup_sources: 1970-01-01 08:00:00) ------

------ KERNEL CPUFREQ (/sys/devices/system/cpu/cpu0/cpufreq/stats/time_in_state) ------

------ KERNEL SYNC (/d/sync) ------

------ PROCESSES (ps -P) ------

------ PROCESSES AND THREADS (ps -t -p -P) ------

------ PROCESSES (SELINUX LABELS) (ps -Z) ------

------ LIBRANK (librank) ------

这里的涉及的信息较多,这里就先介绍下/sys/block/mmcblk0/:

命令:dump_files(“UPTIME MMC PERF”, mmcblk0, skip_not_stat, dump_stat_from_fd); 输出/sys/block/mmcblk0/stat节点以及遍历/sys/block/mmcblk0/mmcblk0p/stat。

stat: 51897 32911 5984151 171690 198408 171047 29988513 2001070 0 334260 2172230

stat: read: 17845KB/s write: 1233KB/s

mmcblk0p24/stat: 16 28 346 50 6 2 64 20 0 70 70

mmcblk0p24/stat: read: 3543KB/s write: 1638KB/s

...

另外read = 512data3/data4, write = 512data7/data8。

Name

单位

含义

read I/Os

requests

已处理的I/O读操作请求个数

read merges

requests

I/O读操作的合并请求个数

read sectors

sectors(512B)

读取的扇区数

read ticks

ms

读请求的总等待时间

write I/Os

requests

已处理的I/O写操作请求个数

write merges

requests

I/O写操作的合并请求个数

write sectors

sectors(512B)

写入的扇区数

write ticks

ms

写请求的总等待时间

in_flight

requests

正在处理中的I/O请求数

io_ticks

ms

该块设备处于活跃态的总时长

time_in_queue

ms

所有请求的总等待时长

3. kernel log

内核log信息,通过命令dmesg可获取

------ KERNEL LOG (dmesg) ------

4. lsof、map及Wait-Channels

4.1 lsof

------ LIST OF OPEN FILES (/system/xbin/su root lsof) ------

COMMAND PID USER FD TYPE DEVICE SIZE/OFF NODE NAME

zygote 286 root mem ??? b3:17 16384 2827 /system/vendor/lib/libcneconn.so

...

所有进程打开的文件,例如pid=286的zygote进程打开libcneconn.so文件。

4.2 show map

------ SHOW MAP 1 (/init) (/system/xbin/su root showmap 1) ------

------ SHOW MAP 2 () (/system/xbin/su root showmap 2) ------

...

------ SHOW MAP 3649 () (/system/xbin/su root showmap 3649) ------

所有进程的show map

4.3 Wait-Channels

------ BLOCKED PROCESS WAIT-CHANNELS ------

1 /init SyS_epoll_wait

...

所有线程的Wait-Channels,记录着所有线程最后停留所在位置,例如上面是指pid=1的进程init,最后blocked在SyS_epoll_wait方法内。

5. system log

------ SYSTEM LOG (logcat -v threadtime -d *:v) ------

6. event log

------ EVENT LOG (logcat -b events -v threadtime -d *:v) -----

7. radio log

------ RADIO LOG (logcat -b radio -v threadtime -d *:v) ------

另外log统计信息,记录main/radio/events/system/crash/kernel各个log使用情况 —— LOG STATISTICS (logcat -b all -S) ——

8. vm traces

------ VM TRACES JUST NOW (/data/anr/traces.txt.bugreport: 2016-06-09 18:57:29) ------

------ VM TRACES AT LAST ANR (/data/anr/traces.txt: 2016-06-09 18:47:39) ------

8.1 just now的栈信息

关键词为”VM TRACES JUST NOW”,数据来源”/data/anr/traces.txt.bugreport”

8.2 last ANR的栈信息

关键词为”VM TRACES AT LAST ANR”,数据来源”/data/anr/traces.txt”。

若存在该ANR则输出相应traces,否则输出:

*** NO ANR VM TRACES FILE (/data/anr/traces.txt): No such file or directory

8.3 tombstones信息

tombstones则是由debuggerd生成的,后续再单独用一篇文章来说明debuggerd的工作原理

------ TOMBSTONE (/data/tombstones/tombstone_01: 2016-06-18 11:16:18) ------

如果tombstones文件不存在则输出:

*** NO TOMBSTONES to dump in /data/tombstones

9. network

------ NETWORK DEV INFO (/proc/net/dev) ------

------ QTAGUID NETWORK INTERFACES INFO (/proc/net/xt_qtaguid/iface_stat_all) ------

------ QTAGUID NETWORK INTERFACES INFO (xt) (/proc/net/xt_qtaguid/iface_stat_fmt) ------

------ QTAGUID CTRL INFO (/proc/net/xt_qtaguid/ctrl) ------

------ QTAGUID STATS INFO (/proc/net/xt_qtaguid/stats) ------

10. last kernel log

------ LAST KMSG (/proc/last_kmsg) ------

11. last system log

------ LAST LOGCAT (logcat -L -v threadtime -b all -d *:v) ------

12. ip相关

------ NETWORK INTERFACES (ip link) ------

------ IPv4 ADDRESSES (ip -4 addr show) ------

------ IPv6 ADDRESSES (ip -6 addr show) ------

------ IP RULES (ip rule show) ------

------ IP RULES v6 (ip -6 rule show) ------

------ RT_TABLES (/data/misc/net/rt_tables: 2016-06-08 22:21:12) ------

------ ROUTE TABLE IPv4 (ip -4 route show table 255) ------

------ ROUTE TABLE IPv6 (ip -6 route show table 255) ------

...

------ ARP CACHE (ip -4 neigh show) ------

------ IPv6 ND CACHE (ip -6 neigh show) ------

------ IPTABLES (/system/xbin/su root iptables -L -nvx) ------

------ IP6TABLES (/system/xbin/su root ip6tables -L -nvx) ------

------ IPTABLE NAT (/system/xbin/su root iptables -t nat -L -nvx) ------

------ IPTABLE RAW (/system/xbin/su root iptables -t raw -L -nvx) ------

------ IP6TABLE RAW (/system/xbin/su root ip6tables -t raw -L -nvx) ------

------ WIFI NETWORKS (/system/xbin/su root wpa_cli IFNAME=wlan0 list_networks) ------

13. 中断向量表

中断向量表,记录着中断号对应的中断模块。

------ INTERRUPTS (1) (/proc/interrupts) ------

------ NETWORK DIAGNOSTICS (dumpsys connectivity --diag) ------

------ INTERRUPTS (2) (/proc/interrupts) ------

14. property信息

------ SYSTEM PROPERTIES ------

------ VOLD DUMP (vdc dump) ------

------ SECURE CONTAINERS (vdc asec list) ------

------ FILESYSTEMS & FREE SPACE (df) ------

15. last radio log

------ LAST RADIO LOG (parse_radio_log /proc/last_radio_log) ------

当然,背光信息 —— BACKLIGHTS ——

LCD brightness= dump_file /sys/class/leds/lcd-backlight/brightness

Button brightness= dump_file /sys/class/leds/button-backlight/brightness

Keyboard brightness= dump_file /sys/class/leds/keyboard-backlight/brightness

ALS mode= dump_file /sys/class/leds/lcd-backlight/als

LCD driver registers: dump_file /sys/class/leds/lcd-backlight/registers

16. Binder相关

------ BINDER FAILED TRANSACTION LOG (/sys/kernel/debug/binder/failed_transaction_log) ------

------ BINDER TRANSACTION LOG (/sys/kernel/debug/binder/transaction_log) ------

------ BINDER TRANSACTIONS (/sys/kernel/debug/binder/transactions) ------

------ BINDER STATS (/sys/kernel/debug/binder/stats) ------

------ BINDER STATE (/sys/kernel/debug/binder/state) ------

紧接着之后还有:

------ DUMP VENDOR RIL LOGS (/system/xbin/su root vril-dump) ------

17. dumpsys相关:

------ DUMPSYS (dumpsys) ------

通过dumpsys -l可查看系统所有服务,不带参数的dumpsys命令会输出系统中所有的服务:每个服务开头信息:

DUMP OF SERVICE SurfaceFlinger:

DUMP OF SERVICE alarm:

DUMP OF SERVICE cpuinfo:

DUMP OF SERVICE dropbox:

...

18. dumpsys checkin相关

------ CHECKIN BATTERYSTATS (dumpsys batterystats -c) ------

------ CHECKIN MEMINFO (dumpsys meminfo --checkin) ------

------ CHECKIN NETSTATS (dumpsys netstats --checkin) ------

------ CHECKIN PROCSTATS (dumpsys procstats -c) ------

------ CHECKIN USAGESTATS (dumpsys usagestats -c) ------

------ CHECKIN PACKAGE (dumpsys package --checkin) ------

dumpsys电池统计,内存、网络统计、进程、使用情况、包这些统计类信息。

19. dumpsys app相关

------ APP ACTIVITIES (dumpsys activity all) ------

------ APP SERVICES (dumpsys activity service all) ------

------ APP SERVICES (dumpsys activity provider all) ------

dumpsys应用activity信息以及service和provider信息。

20. Tips

当需要搜索bugreport中内容时,可通过搜索------查找所有的子项目。 比如查看dumpsys信息,则可通过搜索------ DUMPSYS即可跳转到相应内容的开头。

bugreport具体内容涉及面很广,后续文章会介绍bugreport涉及的DropBoxManagerService,debuggerd等相关问题。 这里先说说一款开源的bugreport分析工具

作者:锐心凌志

链接:https://www.jianshu.com/p/1ada78f09336

來源:简书

简书著作权归作者所有,任何形式的转载都请联系作者获得授权并注明出处。

 类似资料: