adb 抓取ANR日志和普通日志

//确保连接设备

adb devices

//root权限

adb root

//抓日志

adb pull /data/anr D:\anr

 

其中traces文件就是anr日志文件

 

但是正常的手机是未root的,那么应该如何获取呢?

第一步:adb bugreport

这时就会在android studio的Device File Explorer的bugreports目录下也可以看到,如下图:

将其保存到电脑桌面,解压如下图:

其中bugrepo....txt文件,如果LogCat中关于anr的信息不见了,不用慌,我们可以在这个txt文件中看到和Logcat中类似的anr信息,因为这个文件比较长,可以搜索anr in关键词

其次是FS->data->anr文件,打开对应时间的,搜对应自己的包名,可以查到:

根据图中可以看到SessionFragment调用了Thread.sleep方法

信息解释如下:(注意值不对应)

线程名:main
线程优先级:prio=5
线程ID: tid=1
线程状态:Sleeping
线程组名称:group="main"
线程被挂起的次数:sCount=1
线程被调试器挂起的次数:dsCount=0
线程的java的对象地址:obj= 0x7682ab30
线程本身的Native对象地址:self=0x7bd3815c00

线程调度信息:
Linux系统中内核线程ID: sysTid=6317与主线程的进程号相同
线程调度优先级:nice=-10
线程调度组:cgrp=default
线程调度策略和优先级:sched=0/0
线程处理函数地址:handle= 0x7c59fc8548

线程的上下文信息:
线程调度状态:state=S
线程在CPU中的执行时间、线程等待时间、线程执行的时间片长度:schedstat=(1009468742 32888019 224)
线程在用户态中的调度时间值:utm=91
线程在内核态中的调度时间值:stm=9
最后执行这个线程的CPU核序号:core=4

线程的堆栈信息:
堆栈地址和大小:stack=0x7ff27e1000-0x7ff27e3000 stackSize=8MB

 

普通日志抓取:

//e表示error的信息

adb logcat *:e >d:/log.txt

回车开始抓取

ctrl+c 结束结束打印

全部龙信息

adb shell logcat > F:\log.txt

 

 

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值