如何分析bugreport日志

引言

聊聊Android设备生成的bugreport文件日志的分析方法,bugreport.txt文件比较大,刚接触的时候会有点无从下手的感觉,下面就记录一下我自己熟悉这套日志的过程。

文件结构

一、首先是一段头文件,描述此次dump的bugreport日志的设备:

========================================================
== dumpstate: 2024-10-15 14:59:59
========================================================

Build: D730_V1.1.0.139
Build fingerprint: 'SEUIC/d730/d730:11/CRUISE2.20240723/D730_V1.1.0.139:user/release-keys'
Bootloader: unknown
Radio: c7-00021-KAMORTA_GEN_PACK-1.621370.1.626476.1,c7-00021-KAMORTA_GEN_PACK-1.621370.1.626476.1
Network: ,
Module Metadata version: 30
Kernel: Linux version 4.19.157-perf (android@Android-01) (clang version 10.0.7 for Android NDK, GNU ld (binutils-2.27-bd24d23f) 2.27.0.20170315) #1 SMP PREEMPT Tue Jul 23 12:55:52 CST 2024
Command line: rcupdate.rcu_expedited=1 rcu_nocbs=0-7 kpti=off console=ttyMSM0,115200n8 earlycon=msm_geni_serial,0x4a90000 androidboot.hardware=qcom androidboot.console=ttyMSM0 androidboot.memcg=1 lpm_levels.sleep_disabled=1 video=vfb:640x400,bpp=32,memsize=3072000 msm_rtb.filter=0x237 service_locator.enable=1 swiotlb=2048 loop.max_part=7 buildvariant=user androidboot.verifiedbootstate=green androidboot.keymaster=1 androidboot.vbmeta.device=PARTUUID=e62a4961-d4d2-ec94-7da5-186a2acba51d androidboot.vbmeta.avb_version=1.0 androidboot.vbmeta.device_state=locked androidboot.vbmeta.hash_alg=sha256 androidboot.vbmeta.size=7360 androidboot.vbmeta.digest=70ba25fa71d17f53a456eee2d5ea0d5bb327facb4ba195faf3d2358139ac62df androidboot.vbmeta.invalidate_on_error=yes androidboot.veritymode=enforcing androidboot.bootdevice=4804000.ufshc androidboot.fstab_suffix=default androidboot.boot_devices=soc/4804000.ufshc androidboot.serialno=911fc75f pad.version=1 model=CRUISE2 bootlogo= model_use_pad=0 device_type=2.0Q8-11-8/128-S8(H)GC13/5-F-BE scanner=d128 camera= uhf= nfc= lcd_id= language=zh_CN submodel= speaker= dalg=sds androidboot.baseband=msm msm_drm.dsi_display0=qcom,mdss_dsi_ili9881c_video: androidboot.slot_suffix=_b rootwait ro init=/init androidboot.dtbo_idx=9 androidboot.dtb_idx=0
Uptime: up 0 weeks, 0 days, 0 hours, 8 minutes
Bugreport format version: 2.0
Dumpstate info: id=1 pid=6223 dry_run=0 args= bugreport_mode=BUGREPORT_INTERACTIVE

以上信息显示了系统的详细状态,包括构建信息、内核版本、命令行参数等。
构建信息:
1、Build: D730_V1.1.0.139
Build fingerprint: 'SEUIC/d730/d730:11/CRUISE2.20240723/D730_V1.1.0.139:user/release-keys'
这表明你使用的设备是 SEUIC D730,运行的是 Android 11 版本。

2、Kernel: Linux version 4.19.157-perf
内核版本为 4.19.157-perf,这是一个性能优化版本的内核。

3、Uptime: up 0 weeks, 0 days, 0 hours, 8 minutes
设备已经运行了 8 分钟。

二、各种参数的dump

接下来就是各种信息的dump,从这个标记开始:

------ DUMPSYS CRITICAL (/system/bin/dumpsys) ------
-------------------------------------------------------------------------------

依次dump了如下信息:

dumpsys SurfaceFlinger

开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL SurfaceFlinger:
was the duration of dumpsys SurfaceFlinger

dumpsys activity activities

开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL activity
was the duration of dumpsys activity

dumpsys cpuinfo

开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL cpuinfo:
was the duration of dumpsys cpuinfo

dumpsys input

开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL input
was the duration of dumpsys input

dumpsys notification

开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL notification
was the duration of dumpsys notification

dumpsys power

开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL power:
was the duration of dumpsys power

dumpsys sensorservice

开始和结尾的关键字搜索:
DUMP OF SERVICE CRITICAL sensorservice:
was the duration of dumpsys sensorservice

dumpsys window lastanr

开始和结尾的关键字搜索:
WINDOW MANAGER LAST ANR (dumpsys window lastanr)

dumpsys window policy

开始和结尾的关键字搜索:
WINDOW MANAGER POLICY STATE (dumpsys window policy)

dumpsys window animator

开始和结尾的关键字搜索:
WINDOW MANAGER ANIMATOR STATE (dumpsys window animator)

dumpsys window sessions

开始和结尾的关键字搜索:
WINDOW MANAGER SESSIONS (dumpsys window sessions)

dumpsys window displays

开始和结尾的关键字搜索:
WINDOW MANAGER DISPLAY CONTENTS (dumpsys window displays)

dumpsys window tokens

开始和结尾的关键字搜索:
WINDOW MANAGER TOKENS (dumpsys window tokens)

dumpsys window windows

开始和结尾的关键字搜索:
WINDOW MANAGER WINDOWS (dumpsys window windows)

dumpsys window trace

开始和结尾的关键字搜索:
WINDOW MANAGER TRACE (dumpsys window trace)

dumpsys window logging

开始和结尾的关键字搜索:
WINDOW MANAGER LOGGING (dumpsys window logging)

dumpsys window refresh

开始和结尾的关键字搜索:
WINDOW MANAGER HIGH REFRESH RATE BLACKLIST (dumpsys window refresh)

dumpsys window constants

开始和结尾的关键字搜索:
WINDOW MANAGER CONSTANTS (dumpsys window constants):

三、SYSTEM LOG

开始结束关键字搜索:
------ SYSTEM LOG (logcat -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of 'SYSTEM LOG' ------
其实调用的是logcat system和main缓冲区的log,可重点关注如下标记日志:
--------- beginning of system
--------- beginning of crash
--------- beginning of main

四、EVENT LOG

开始结束关键字搜索:
------ EVENT LOG (logcat -b events -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of 'EVENT LOG' ------
调用的是logcat events缓冲区的log

五、RADIO LOG

开始结束关键字搜索:
RADIO LOG (logcat -b radio -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of 'RADIO LOG' ------
调用的是logcat radio缓冲区的log,无线电相关,打电话等

六、STATISTICS LOG

开始结束关键字搜索:
------ LOG STATISTICS (logcat -b all -S) ------
------ was the duration of 'RADIO STATISTICS ' ------
记录了main/radio/events/system/crash/security/kernel等各个log的使用情况

七、略过一些不关心的log和dump

------ was the duration of 'LAST LOGCAT' ------
------ was the duration of 'DUMP TRACES' ------
------ was the duration of 'for_each_pid' ------
------ was the duration of 'IPTABLES' ------
------ was the duration of 'IP6TABLES' ------
...
------ was the duration of 'LPDUMP' ------

八、MEMORY INFO

开始结束关键字搜索:
------ MEMORY INFO (/proc/meminfo) ------
------ was the duration of 'MEMORY INFO' ------
需要重点关注的信息,内存相关,详细参数需要了解清楚其代表的含义。

九、CPU INFO

开始结束关键字搜索:
------ CPU INFO (top -b -n 1 -H -s 6 -o pid,tid,user,pr,ni,%cpu,s,virt,res,pcy,cmd,name) ------
------ was the duration of 'CPU INFO' ------
需要重点关注的信息,cpu相关,详细参数需要了解清楚其代表的含义。

十、VIRTUAL MEMORY STATS

开始结束关键字搜索:
------ VIRTUAL MEMORY STATS (/proc/vmstat) ------
------ was the duration of 'VIRTUAL MEMORY STATS' ------
需要重点关注的信息,虚拟内存相关,详细参数需要了解清楚其代表的含义。

十一、LAST ANR

开始结束关键字搜索:
------ VM TRACES AT LAST ANR (/data/anr/anr_2024-08-17-16-02-18-905: 2024-08-17 16:02:33) ------
------ was the duration of 'ANR FILES' ------
最近一次anr的trace信息,值得关注

十二、HIGH meminfo

开始结束关键字搜索:
DUMP OF SERVICE HIGH meminfo:
was the duration of dumpsys meminfo
高内存的进程dump,值得关注

十三、SYSTEM PROPERTIES

开始结束关键字搜索:
------ SYSTEM PROPERTIES (getprop) ------
------ 0.067s was the duration of 'SYSTEM PROPERTIES' ------
系统的一些内置参数,键值对,值得关注

十四、BINDER FAILED TRANSACTION LOG

开始结束关键字搜索:
------ BINDER FAILED TRANSACTION LOG (/dev/binderfs/binder_logs/failed_transaction_log: 1970-01-02 08:04:48) ------
------ 0.001s was the duration of 'BINDER FAILED TRANSACTION LOG' ------
binder通信失败的日志,比如binder传送数据过大等,很多aidl失败的日志可以在这里找到,后面还列举了所有的binder日志,值得关注

十五、Android Framework Services

开始结束关键字搜索:
== Android Framework Services
========================================================
------ DUMPSYS (/system/bin/dumpsys) ------


系统Framework 的一些服务或者机制的dump信息,值得关注,如activity,service,broadcast,contentProvider四大组件的各个状态。
还可以看到因为低内存而杀死的进(dumpsys activity lmk)程,各个进程的详细信息(dumpsys activity processes)等

十六、 APP ACTIVITIES

开始结束关键字搜索:
------ APP ACTIVITIES (/system/bin/dumpsys -T 60000 activity -v all) ------
------ 0.081s was the duration of 'APP ACTIVITIES' ------
值得关注

十七、Dropbox相关

Dropbox会收集system server crash 和 system app crash 信息
开始结束关键字搜索:
------ DROPBOX SYSTEM SERVER CRASHES (/system/bin/dumpsys -T 30000 dropbox -p system_server_crash) ------
------ DROPBOX SYSTEM APP CRASHES (/system/bin/dumpsys -T 30000 dropbox -p system_app_crash) ------
值得关注

最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

推荐阅读更多精彩内容