利用“崩溃轨迹”分析崩溃

原文出自【听云技术博客】:http://blog.tingyun.com/web/article/detail/777

“崩溃,严重伤害用户的情感,严重损害用户体验,罪恶行径简直令人发指,特请xx狮、xx猿火速缉拿案犯归案,刻不容缓,钦此。”

虽然在“听云App”等类似优秀工具的帮助下,大多数的崩溃都能快速的、轻易的定位问题,如图:

上图所示,已经定位到某源文件的某行,再加上崩溃message,崩溃的原因就显而易见了。

但有些崩溃的原因就不是那么显而易见了,往往需要寻找更多蛛丝马迹来定位问题,要不然也谈不上什么“分析”了。

本文用两个例子说明“崩溃轨迹”在分析崩溃过程中的重要作用。

“崩溃轨迹”介绍

遇到难分析的崩溃时,最想得到的信息是:用户当时是怎么操作的?如何能复现崩溃?

“崩溃轨迹”也即“交互轨迹”,它记录的是崩溃前若干连续的用户操作。利用这些操作,或者能复现崩溃(这是最理想的),或者帮助缩小嫌疑范围。

下图是一个崩溃轨迹,先来认识一下:

好了,我们通过两个例子进一步了解“崩溃轨迹”的作用。

案例1

今年4月21日,我们的一家客户发现他们的app发生了大量的崩溃,崩溃率很高,其中一个bug导致的崩溃占了总崩溃的63%,可是从堆栈上看不出有价值的信息,如图:

我们帮客户分析时发现,这个堆栈没有反映出崩溃的原因,对于分析没有什么帮助。

这时我们把眼光投向“崩溃轨迹”,如图:

请注意,最后两个动作的时间都是“1秒前”,而且触发的函数也一样……猜到啥情况了吗?这是app的使用者快速连续操作了。基于这个推断,我们与客户一起,按照这个轨迹操作,果然,在那个界面只要快速连续点击,必崩!

能复现就好办了,直接联机调试,问题立即解决。

案例2:

这个例子是几天刚发生的,栈信息如图:

同样的,也是崩溃堆栈只有main函数,也是一头雾水,但崩溃轨迹提供了重要信息,请看轨迹:

最后一个操作发生在崩溃前0秒,这意味着崩溃就发生在那个函数里,这一下子范围小多了!虽然这个崩溃不是必现,没有按照轨迹复现出来,但因为“嫌疑”范围就在那几行,客户的开发人员很快就想到了问题所在。

通过以上两个例子介绍崩溃轨迹的重要作用,希望对大家有帮助。

时间: 2024-07-28 13:36:31

利用“崩溃轨迹”分析崩溃的相关文章

关于9行代码导致系统崩溃的分析整理_漏洞研究

目前很多地方都转载着利用9行代码史windows崩溃的文章,不过我发现没有关于为什么会使windows崩溃的分析.我先把原文给大家看看.然后把具体的细节说一下.   微软一直声称Windows XP多么多么稳定可靠,但日前一位名为Masaru Tsuchiyama的外国编程爱好者刊出了一小段C语言代码.这一只有9行的小程序如果在Windows XP/2000下运行,则可导致系统完全崩溃,并重新启动.但此程序对其他版本的Windows没有任何影响.这一产生无限循环输出的小程序的代码如下:   #i

《百万级应用是怎样炼成的》传播轨迹分析

一.<百万级应用是怎样炼成的>的整体效果 <百万级应用是怎样炼成的>已经发表一个多星期,整体取得的效果不错,受到不少人的赞赏与肯定,当然也不乏批评的声音.最重要的是该文确实对不少移动互联网从业者产生影响,起码为从事移动互联网的新人提供一个较为清晰的行业介绍,达到了我所想的目的.经过一些粗略统计,本文大概有6000多人浏览次数,其中我的网易博客浏览次数为3006,被推荐到网易科技首页,网易博客科技频道首页.而PDF版的下载次数为1000次,同时也被@互联网的一些事.@雷锋网.@互联网

剑灵崩溃怎么办?剑灵崩溃解决办法

剑灵崩溃原因分析 安装剑灵组件失败,玩游戏时出现系统摄错,闪退,或提示服务器无法连接或服务器维护中. 可能出现的原因 1.没有安装剑灵必装组件了 2.msvcrdtd.dll未被正确编译 3.本地防火墙给拦截了 解决办法 1.下载一个QQ电脑管家,然后我们把它下载到电脑并安装, 2.之后我们打开找到"电脑诊所"然后进入后搜索"剑灵崩溃"找到方法点击进入 3.进入后如图所示我们点击修复即可解决你的问题.

利用开源工具分析新型PowerPoint恶意文档

本文讲的是利用开源工具分析新型PowerPoint恶意文档,最新新出现了一个新型的恶意MS Office文档:通过将鼠标光标悬停在链接上来执行PowerShell命令的PowerPoint文档,此攻击不涉及VBA宏.在本博客中,我们将展示如何使用免费的开源工具分析这些文档.像往常一样,该恶意MS Office文件通过电子邮件发送给受害者. 分析 使用emldump.py(一个分析MIME文件的工具),我们可以分析用户收到的电子邮件: 输出表示邮件附件位于第5部分.我们选择第5部分,并执行前100

【Hadoop Summit Tokyo 2016】基于Spark的高性能时空轨迹分析

本讲义出自YongHua (Henry) Zeng在Hadoop Summit Tokyo 2016上的演讲,主要分享了基于Spark的高性能时空轨迹分析的相关背景.架构以及技术设计,在技术设计方面主要讲解了大数据平台的设计.数据治理的设计.算法模型以及Spark轨迹计算等内容,最后还对于高性能时空轨迹分析的未来发展进行了展望.

PostgreSQL 实时位置跟踪+轨迹分析系统实践 - 单机顶千亿轨迹/天

标签 PostgreSQL , PostGIS , 动态更新位置 , 轨迹跟踪 , 空间分析 , 时空分析 背景 随着移动设备的普及,越来越多的业务具备了时空属性,例如快递,试试跟踪包裹.快递员位置.例如实体,具备了空间属性. 例如餐饮配送,送货员位置属性.例如车辆,实时位置.等等. 其中两大需求包括: 1.对象位置实时跟踪,例如实时查询某个位点附近.或某个多边形区域内的送货员. 2.对象位置轨迹记录和分析.结合地图,分析轨迹,结合路由算法,预测.生成最佳路径等. DEMO 以快递配送为例,GP

dYSM分析崩溃日志

前言 相信很多朋友都使用了友盟统计这个SDK吧,能够统计出我们崩溃的日志,但是反馈的日志是无法确定到底是哪里发生崩溃的,那么我们如何去查呢? dYSM是打包的时候生成的,位于/Users/<用户名>/Library/Developer/Xcode/Archives下,找到它就可以拿友盟统计上的错误日志来查找崩溃在程序的哪个类哪行代码了.不过,这不是绝对的,有的日志是查不到崩溃在何处的. 查找dYSM文件 在友盟统计上,错误日志这里会有应用的版本号,我们要根据这个版本号,找到我们对应的ipa包,

利用Eventlog Analyzer分析日志

原创作品,允许转载,转载时请务必以超链接形式标明文章 原始出处 .作者信息和本声明.否则将追究法律责任.http://chenguang.blog.51cto.com/350944/925298 利用EventlogAnalyzer分析日志 ManageEngineEventLogAnalyzer是一个基于Web技术.实时的事件监控管理解决方案,能够提高企业网络安全.减少工作站和服务器的宕机事件.EventLog采用无代理的结构从分布式主机上收集事件日志,也可以从UNIX主机.路由器.交换机及其

如何利用JConsole观察分析Java程序的运行并进行排错调优_java

一.JConsole是什么 从Java 5开始 引入了 JConsole.JConsole 是一个内置 Java 性能分析器,可以从命令行或在 GUI shell 中运行.您可以轻松地使用 JConsole(或者,它更高端的 "近亲" VisualVM )来监控 Java 应用程序性能和跟踪 Java 中的代码. 二.如何启动JConsole 1.如果是从命令行启动,使 JDK 在 PATH 上,运行 jconsole 即可. 2.如果从 GUI shell 启动,找到 JDK 安装路