美文网首页面经项目遇到问题
iOS之DYSM分析友盟错误信息

iOS之DYSM分析友盟错误信息

作者: Mr_Bob_ | 来源:发表于2016-06-21 15:29 被阅读2912次
前言:

有很多公司利用友盟来统计错误崩溃日志,方便开发人员查找错误的位置,但是反馈的日志是无法确定到底是哪里发生崩溃的,那么我们如何去查呢?
首先我们看下友盟报错的信息:

Paste_Image.png
单看友盟日志,是看不出来到底在哪里崩溃的。不过日志中有了崩溃的地址,我们可以通过命令查出来到底是哪个类哪一行哪一列出现的崩溃。
查找dYSM文件:

dYSM是打包的时候生成的,查找位置可以用下面的方法,找到它就可以拿友盟统计上的错误日志来查找崩溃在程序的哪个类哪行代码了。不过,这不是绝对的,有的日志是查不到崩溃在何处的。
Xocde-->preference -->

Paste_Image.png Paste_Image.png
友盟统计上,错误日志这里会有应用的版本号,我们要根据这个版本号,找到我们对应的ipa包,然后找到dYSM文件。在错误日志的下位,有出错的版本号,出错的次数,出错的首次日期,最后一次出现的日期。
即可得到DYSM文件的位置:
/Users/zhoujunbo/Library/Developer/Xcode/Archives/2016-06-21/SSPendi\ 16-6-21\ 下午2.23.xcarchive

-然后

Paste_Image.png
  • 接下来继续进入
Paste_Image.png Paste_Image.png Paste_Image.png
  • 最后进入文件
cd /Users/zhoujunbo/Library/Developer/Xcode/Archives/2016-06-21/SSPendi\ 16-6-21\ 下午2.23.xcarchive/dSYMs/SSPendi.app.dSYM/Contents/Resources/DWARF/SSPendi
解析友盟错误信息重要指令:
dwarfdump --arch=arm64 --lookup 0x1001edbc4 /Users/zhoujunbo/Library/Developer/Xcode/Archives/2016-06-21/SSPendi\ 16-6-21\ 下午2.23.xcarchive/dSYMs/SSPendi.app.dSYM/Contents/Resources/DWARF/SSPendi

0x1001edbc4是友盟报错的地址,我们只需要把地址换为自己app的地址即可,然后敲回车,终端就会显示这样一串信息

0x003ab47e: Compile Unit: length = 0x000026ba  version = 0x0002  abbr_offset = 0x00000000  addr_size = 0x08  (next CU at 0x003adb3c)

0x003ab489: TAG_compile_unit [1] *
             AT_producer( "Apple LLVM version 7.3.0 (clang-703.0.31)" )
             AT_language( DW_LANG_ObjC )
             AT_name( "/Users/zhoujunbo/Documents/SVN/SSPendi/ECSDKDemo_OC/Custom/DB/IMCommon.m" )
             AT_stmt_list( 0x00121122 )
             AT_comp_dir( "/Users/zhoujunbo/Documents/SVN/SSPendi" )
             AT_APPLE_optimized( 0x01 )
             AT_APPLE_major_runtime_vers( 0x02 )
             AT_low_pc( 0x00000001001ed7a0 )
             AT_high_pc( 0x00000001001ee82c )

0x003ac6f2:     TAG_subprogram [35] *
                 AT_low_pc( 0x00000001001edb14 )
                 AT_high_pc( 0x00000001001edc44 )
                 AT_frame_base( reg29 )
                 AT_object_pointer( {0x003ac711} )
                 AT_name( "-[IMMessageObj dealloc]" )
                 AT_decl_file( "/Users/zhoujunbo/Documents/SVN/SSPendi/ECSDKDemo_OC/Custom/DB/IMCommon.m" )
                 AT_decl_line( 64 )
                 AT_prototyped( 0x01 )
                 AT_APPLE_optimized( 0x01 )
Line table dir : '/Users/zhoujunbo/Documents/SVN/SSPendi/ECSDKDemo_OC/Custom/DB'
Line table file: 'IMCommon.m' line 74, column 10 with start address 0x00000001001edbc4

然后,我们可以分析得到是在IMCommon.m文件中的第74行第10列崩溃的,就可以直接定位到错误的地方,然后分析出错的代码,fix掉就可以了。

相关文章

  • iOS崩溃日志相关文章转载

    iOS之DYSM分析友盟错误信息 iOS 用dSYM工具分析友盟崩溃日志 —— 详细步骤 漫谈iOS Crash收...

  • iOS之DYSM分析友盟错误信息

    前言: 有很多公司利用友盟来统计错误崩溃日志,方便开发人员查找错误的位置,但是反馈的日志是无法确定到底是哪里发生崩...

  • iOS DYSM分析友盟错误信息无标题文章

    前言:有很多公司利用友盟来统计错误崩溃日志,方便开发人员查找错误的位置,但是反馈的日志是无法确定到底是哪里发生崩溃...

  • crash

    友盟 Application received signal SIGSEGV 然后找到当时上传代码时使用的DYSM...

  • 友盟错误分析

    友盟错误分析有时候不能看到准确的错误信息,比如: 你不清楚崩溃具体在哪个地方,这个时候就需要用到友盟的错误分析工具...

  • iOS 友盟推送--关键点/核心点

    |:-| totem iOS集成友盟推送 1.iOS集成“友盟推送”后,友盟服务响应的deviceToken = ...

  • 友盟微信登录,分享。

    以下全是正事: 关于友盟的UShare如何安装,请移步到友盟官方文档iOS | iOS | 开发者中心 | 友盟-...

  • 友盟bug日志分析

    友盟bug日志分析 一、友盟工具分析 1、去友盟后台,我的产品->移动统计->错误分析,找到有哪些bug日志,并把...

  • 友盟错误分析iOS

    友盟错误分析iOS 官方教程:官网-文档中心-报表解读-错误分析官方文档 上面分析的时候有时候很慢,可以使用下面的...

  • iOS 友盟错误分析

    我们经常会用到一些统计App错误的工具,拿友盟为例,当我们拿到这些错误详情该如何定位到项目中的代码呢?不多说直接先...

网友评论

  • byronChengChen:你好,我使用NSSetUncaughtExceptionHandler(&uncaughtExceptionOneHandler);的方式自己记录闪退日志,通过堆栈信息的内存地址分析,得到错误地址是 0x000000010eea80f3,然后
    dwarfdump --arch=x86_64 --lookup 0x000000010eea80f3 FindErrorByArchive
    可怎么都得不到详细信息,请问你遇到过吗?
    1seven:你好,通过自己记录的话,我和你用的方法一样,但是本地没存上是什么原因啊
  • Code_Ninja:其实有更简单的方法,上面友盟统计错误信息那里点击蓝色的地址,会弹出来一串命令。直接拷贝到终端中执行就可以打印出错误出在哪里了。前提是在本机上打的包,并且打的包保留着。
  • 超_iOS:第74行第10列,请问这里的列是什么意思?
  • 神采飞扬_2015:严重不对,百度对应的是A页面,用你的方法定位的是B页面,相差好大,是怎么回事呢?
  • JaneYang1205:不错,快速定位问题
  • f32091ba3cb1:集成友盟后,在appdelegate中设置好之后,就会自己抓闪退吗

本文标题:iOS之DYSM分析友盟错误信息

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