bugreport 分析方法

文章来源:https://www.jianshu.com/p/20e1bfdf5161

作者:特立独行的佩奇

Android bugreport 概述

bugreport 是Android 系统下的一个工具,功能类似于系统的一个黑匣子;通过执行相应的命令可以获取到bugreport 包,其中包含设备日志,堆栈跟踪和其他诊断信息,可帮助您查找和修复系统错误;bugreport信息量非常之大,几乎涵盖整个系统各个层面内容,对于分析BUG是一大利器

生成 bugreport

直接 adb bugreport 生成


adb bugreport
/data/user_de/0/com.android.shell/files/bugreports/bugreport-frost-RD2A.211001.002-2022-07-26-09-29-01.zip: 1 file pulled, 0 skipped. 27.4 MB/s (23057334 bytes in 0.802s)
Bug report copied to C:\Users\86185\bugreport-frost-RD2A.211001.002-2022-07-26-09-29-01.zip
Android bugreport 内容分析

直接生成的是一个zip 包,大概有20M大小;
bugreport-xxxxx-2022-07-26-09-29-01.zip
解压后目录如下所示:

  • FS    是一个目录包含下面子目录:
    data    data下的关键信息如 tombstone,ANR,logd信息等
    proc    各个进程procfs 的dump信息
    linkerconfig    TBD

  • lshal-debug    关键HAL进程的 lshal信息

  • proto    TBD

  • bugreport-frost-RD2A.211001.002-2022-07-26-09-29-01.txt
    系统信息的关键文件,解析见下文

  • dumpstate_board.txt    执行bugreport 的dumpstate 进程信息

  • main_entry.txt    dump出的文件名

  • dumpstate_log.txt    执行dumpstate 的log 信息

  • version.txt    TBD

  • visible_windows.zip    TBD

如果发生了ANR,crash 等事件,FS下的内容是至关重要的,ANR的trace 和 tombstone 文件都可以找到,具体可以结合bugreport txt 文件分析

bugreport-xxx-211001.002-2022-07-26-09-29-01.txt

这个文件包含了system dump 的ALL info 和 dump 时间点前后的log,包含的内容为:


系统信息:
dum时间点,系统版本,内核版本,运行时间,Bootcmd


========================================================
== dumpstate: 2022-07-26 09:29:01
========================================================
Build: frost-userdebug 11 RD2A.211001.002 C3QP_R_V0.9.15.R1-0577-20220720 test-keys
Build fingerprint: 'Redmi/frost/frost:11/RD2A.211001.002/C3QP_R_V0.9.15.R1-0577-20220720:userdebug/test-keys'
Bootloader: unknown
Radio: MPSS.HA.1.0.c2-00414-QTANG2_LWG_PACK-1,MPSS.HA.1.0.c2-00414-QTANG2_LWG_PACK-1
Network: ,
Module Metadata version: 30
Kernel: Linux version 5.4.191-jgki-debug+ (scm@SS-AIMM02) (Android (6443078 based on r383902) clang version 11.0.1 (https://android.googlesource.com/toolchain/llvm-project b397f81060ce6d701042b782172ed13bee898b79), LLD 11.0.1 (/buildbot/tmp/tmp6_m7QH b397f81060ce6d701042b782172ed13bee898b79)) #1 SMP PREEMPT Wed Jul 20 02:28:27 CST 2022
Command line: security=selinux androidboot.hardware=jlq iommu.strict=0 firmware_class.path=/etc/firmware swiotlb=2048 rcu_nocbs=0-7 kpti=off rcupdate.rcu_expedited=1 earlycon=uart8250,mmio32,0x3450F000 console=jlqttyS1,115200n8 no_console_suspend loglevel=7 page_owner=on printk.devkmsg=on buildvariant=userdebug  androidboot.verifiedbootstate=orange androidboot.vbmeta.device=PARTUUID=7db6ac55-ecb5-4e02-80da-4d335b973332 androidboot.vbmeta.avb_version=1.0 androidboot.vbmeta.device_state=unlocked androidboot.secureboot=0 androidboot.vbmeta.hash_alg=sha256 androidboot.vbmeta.size=7168 androidboot.vbmeta.digest=9d001b15f4485a96b573fa13c001ac965a9cd10f43c5734ee92815b91827a401 androidboot.veritymode=disabled androidboot.bootdevice=34458000.sdhci androidboot.boot_devices=0.soc/34458000.sdhci androidboot.serialno=d4081bbb androidboot.sysdump=1 androidboot.cpuid=0x2124a4815baaeebd2102628ed64fc07400000000000000000000000000000000 androidboot.bootreason=0 androidboot.baseband=msm androidboot.hwname=frost androidboot.hwc=Global androidboot.hwversion=1.21.0 androidboot.hwlevel=1 androidboot.product.hardware.sku=c3qpa panel_cfg=xiaomi C3QP 35 02 0a hd+ video dsi panel,display_init=1 androidboot.slot_suffix=_a rootwait ro init=\init androidboot.dtbo_idx=6,9,15  androidboot.dtb_idx=0 androidboot.force_normal_boot=1
Uptime: up 0 weeks, 6 days, 6 hours, 1 minute
Bugreport format version: 2.0
Dumpstate info: id=2 pid=20089 dry_run=0 args=/system/bin/dumpstate -S -d -z bugreport_mode=

dumpsys 信息

  • dumpsys SurfaceFlinger
    关键字:

DUMP OF SERVICE CRITICAL SurfaceFlinger:
was the duration of dumpsys SurfaceFlinger

  • dumpsys activity activities
    关键字:

ACTIVITY MANAGER ACTIVITIES (dumpsys activity activities)
was the duration of dumpsys activity

  • dumpsys cpuinfo
    关键字:

was the duration of dumpsys cpuinfo

  • dumpsys input
    关键字:

was the duration of dumpsys input

  • dumpsys notification
    关键字:

was the duration of dumpsys notification

  • dumpsys power
    关键字:

was the duration of dumpsys power

  • dumpsys 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):

logcat 信息

关键字:
system log:
------ SYSTEM LOG (logcat -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of 'SYSTEM LOG' ------

event log:
------ EVENT LOG (logcat -b events -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of 'EVENT LOG' ------

stat log:
------ STATS LOG (logcat -b stats -v threadtime -v printable -v uid -d *:v) ------
------ was the duration of 'STATS LOG' ------

radio log:
------ RADIO LOG (logcat -b radio -v threadtime -v printable -v uid -d *:v) ------
------   was the duration of 'RADIO LOG' ------

last log:
------ LAST LOGCAT (logcat -L -b all -v threadtime -v printable -v uid -d *:v) ------

chkbugreport 工具

因为bugreport 中包含了太多的信息,查找分类信息很困难,所以有分析bugreport txt文件的开源工具 chkbugreport;作用是分析析处理手机上生成的bugreport,并且为开发者提取尽可能多的有用数据;

转自:Android bugreport 分析方法

  • 0
    点赞
  • 1
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
你好!对于 Bugreport 解析,可以采取以下步骤: 1. 首先,阅读 Bugreport 的内容,了解用户报告的问题。注意关键词、描述和复现步骤等信息。 2. 确定 Bugreport 的分类。根据报告的内容和问题类型,将其归入适当的类别,例如功能错误、界面问题或性能问题等。 3. 重现 Bug。根据用户提供的复现步骤,尝试在相同的环境下复现 Bug。如果能够重现,可以进一步分析问题。 4. 确定影响范围。确定 Bug 的影响范围,包括受影响的功能、平台、浏览器或设备等。这有助于确定优先级和修复计划。 5. 提取关键信息。从 Bugreport 中提取关键信息,如错误代码、日志、截图等,以便更好地理解和调查问题。 6. 分析原因。使用调试工具、日志分析或其他技术手段,找出导致 Bug 的根本原因。 7. 编写 Bugreport 解析。将你对 Bug 的分析结果以清晰简洁的方式写入 Bugreport 解析中。包括问题描述、复现步骤、影响范围和原因分析等。 8. 提出解决方案。根据原因分析,提出解决 Bug 的方案或建议修复方法。如果需要,可以提供临时的解决方案或补丁。 9. 分配和跟踪。将 Bug 分配给相应的开发人员,并跟踪修复进展。确保 Bug 得到及时处理和关闭。 10. 反馈用户。在 Bug 修复后,及时向用户反馈修复结果,并感谢其对 Bug 的报告和耐心等待。 希望这些步骤对你有所帮助!如果还有其他问题,请随时提问。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

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

余额充值