美文网首页
traces.txt日志文件分析

traces.txt日志文件分析

作者: 大写的口可口可 | 来源:发表于2018-11-11 23:26 被阅读0次

一般traces.txt日志输出格式如下,本实例是在主线程中强行Sleep导致的ANR日志:

(mutexes: tll=0 tsl=0 tscl=0 ghl=0 hwl=0 hwll=0)  
"main" prio=5 tid=1 Sleeping
  | group="main" sCount=1 dsCount=0 obj=0x73f11000 self=0xf3c25800
  | sysTid=2957 nice=0 cgrp=default sched=0/0 handle=0xf7770ea0
  | state=S schedstat=( 107710942 40533261 131 ) utm=4 stm=6 core=2 HZ=100
  | stack=0xff49d000-0xff49f000 stackSize=8MB
  | heldmutexes=
  atjava.lang.Thread.sleep!(Native method)
  - sleepingon <0x31fd6f5d> (a java.lang.Object)
  atjava.lang.Thread.sleep(Thread.java:1031)
  - locked <0x31fd6f5d> (a java.lang.Object)
  atjava.lang.Thread.sleep(Thread.java:985)
  atcom.sunny.demo.MainActivity.startMethod(MainActivity.java:21)
  atjava.lang.reflect.Method.invoke!(Native method)
  atjava.lang.reflect.Method.invoke(Method.java:372)
  atandroid.view.View$1.onClick(View.java:4015)
  atandroid.view.View.performClick(View.java:4780)
  atandroid.view.View$PerformClick.run(View.java:19866)
  atandroid.os.Handler.handleCallback(Handler.java:739)
  atandroid.os.Handler.dispatchMessage(Handler.java:95)
  atandroid.os.Looper.loop(Looper.java:135)
  atandroid.app.ActivityThread.main(ActivityThread.java:5254)
  atjava.lang.reflect.Method.invoke!(Native method)
  atjava.lang.reflect.Method.invoke(Method.java:372)
  atcom.android.internal.os.ZygoteInit$MethodAndArgsCaller.run(ZygoteInit.java:903)
  atcom.android.internal.os.ZygoteInit.main(ZygoteInit.java:698)

第1行是固定头,指明下面都是当前运行的dvm thread:“DALVIK THREADS”;
第2行输出的是改进程中各线程互斥量的值,有些手机上面可能没有这一行日志信息;
第3行输出的是线程名字(“main”),线程优先级(“prio=5”),线程id(“tid=1”),线程状态(Sleeping),比较常见的状态还有Native、Waiting;
第4行分别是线程所处的线程组 (“main”),线程被正常挂起的次处(“sCount=1”),线程因调试而挂起次数(”dsCount=0“),当前线程所关联的java线程对象(”obj=0x73f11000“)以及该线程本身的地址(“0xf3c25800”);
第5行 显示线程调度信息,分别是该线程在linux系统下得本地线程id (“ sysTid=2957”),线程的调度有优先级(“nice=0”),调度策略(sched=0/0),优先组属(“cgrp=default”)以及 处理函数地址(“handle=0xf7770ea0”);
第6行 显示更多该线程当前上下文,分别是调度状态(从 /proc/[pid]/task/[tid]/schedstat读出)(“schedstat=( 107710942 40533261 131 )”),以及该线程运行信息 ,它们是线程用户态下使用的时间值(单位是jiffies)(“utm=4”), 内核态下得调度时间值(“stm=6”),以及最后运行改线程的cup标识(“core=2”);
第7行表示线程栈的地址(“stack=0xff49d000-0xff49f000”)以及栈大小(“stackSize=8MB”);
后面是线程的调用栈信息,也是分析ANR的核心所在。

相关文章

  • traces.txt日志文件分析

    一般traces.txt日志输出格式如下,本实例是在主线程中强行Sleep导致的ANR日志: 第1行是固定头,指明...

  • 获取Android ANR文件

    当ANR发生时,可以从目录/data/anr/traces.txt中获取最近发生ANR的日志文件,然后分析产生AN...

  • Android之ANR(一)

    1、ANR文件的位置:data/anr/traces.txt 2、ANR文件名:traces.txt 3、导出AN...

  • 浅析android 线程状态

    在分析ANR问题时,第一步就是把/data/anr/traces.txt这个文件adb pull出来分析, 它记录...

  • Android发生ANR之后如何导出日志

    1、导出traces.txt文件 使用adb命令:adb pull /data/anr/traces.txt G:...

  • ANR日志traces.txt分析

    导致ANR的几种情况 KeyDispatchTimeout(5s): 按键或触摸事件在特定时间内无法处理完成 Br...

  • Android 出现ANR定位问题

    1,出现ANR时,输入 2,会在当前cmd路径下生成ANR文件3,找到里面的traces.txt日志4,搜索出现A...

  • SEO之网站日志分析与流量分析

    怎样读日志文件? 日志字段含义: 日志分析案例: 大家可以使用日志分析软件进行分析,例如:光年日志分析。 通过日志...

  • 系统日志

    1、日志文件 2、syslogd 3、logrotate和日志文件分析

  • ANR traces文档解析

    一、前言 此文主要记录发生ANR时生成的traces.txt文档,便于记忆分析。 ANR中的traces.txt文...

网友评论

      本文标题:traces.txt日志文件分析

      本文链接:https://www.haomeiwen.com/subject/gyoffqtx.html