ios中友盟统计怎么通过.dsym文件分析崩溃日志

ios中友盟统计怎么通过.dsym文件分析崩溃日志,第1张

第一种方法:

使用dwarfdump命令

dwarfdump --uuid xxappdSYM 用来得到app的UUID。

dwarfdump --lookup 0x12b45d -arch armv7 xxappdSYM 使错误的日志能看懂,把相应的内存地址对应到正确的地方。

如果一开始dwarfdump命令不能用的话,要先装Command Line Tools,这个在设置里面能下载(cmd+“,”打开设置)。另外还必须在进入DSYM所在文件夹。

使用dwarfdump需要安装Command Line Tools,XCode里设置下载。而且需要进入DSYM所在文件夹里进行 *** 作。

第二种方法:

使用xcrun atos命令

atos -o YourAppappdSYM/Contents/Resources/DWARF/YourApp 0x00062867

详细请参考链接:>

把 Projects 和 Targets的 Build Options -> Debug Infomation format 设置为 DWARF with dSYM File

还需要 修改 Generate Debug Symbols

然后就生成了dsym如下 dsym目录 /Users/<用户名>/Library/Developer/Xcode/Archives

当我们的 app 开发完成 并切 上线之后, 会被 很多用户去使用,在他们使用的 过程中 可能会 由于各种原因 导致 程序 崩溃 ,如果我们不关心这个问题, 就不可能 做出 健壮的 app。

我们可以自己 写 code 来 捕获异常 ,在 app 崩溃之前 将 异常内容 固化成文件 ,在 app 下次 启动时 再将 异常 信息 上传到 我们的服务器 供我们 分析 , 也可以使用 统计平台都 错误分析 功能 ,百度或者 友盟 都有 错误 统计 和分析 功能 。

具体怎么使用 统计 sdk , 下载完 sdk 后 文档 说的都很清楚,我就不 解释了 。

下 面说一下 ,获取到 异常 信息后 如何 使用 dwarfdump 工具 在 dsym文件中 找出 出错的 代码 位置 。

1、首先 你要 有 dsym 文件才行 ,dsym 文件的位置 由于 打包的方式不同 可能 不同 ,如果你是 直接 build 出来的 ,那么 在 你 对应的 app 文件相同目录下就可以看到 dsym文件,如果你是 菜单栏中 product -> archive ,archive 完了 打开 Organizer ->Archives 中 打的包 ,那么你的 dsym 文件将在 对应 的 archive 中的 dsyms 文件夹下 。

2、获取 异常日志

登录友盟统计平台 ,进入制定 app ,点击 左边栏 里的 错误分析 , 这样就可以看到 错误列表 ,

比如:

Application received signal SIGSEGV 215 20865 2014-06-06 15:31:55

点击该错误 可以看到 详细信息

Application received signal SIGSEGV (null) ( 0 CoreFoundation 0x2f471f23 + 154 1 libobjcAdylib 0x39f38ce7 objc_exception_throw + 38 2 CoreFoundation 0x2f471e4d + 0 3 aaaaaaaa 0x8aa981 _ZNSt3__113__vector_baseIP10OneRequestNS_9allocatorIS2_EEED2Ev + 1134736 4 libsystem_platformdylib 0x3a55071b _sigtramp + 34 5 aaaaaaaa 0x7439e9 _ZNSt3__113__vector_baseIP9OnePacketNS_9allocatorIS2_EEED2Ev + 3044 6 aaaaaaaa 0x749769 _ZN14BasicHashTable8IteratorD2Ev + 568 7 aaaaaaaa 0x760f93 _ZN12THREAD_MUTEXC2Ev + 12810 8 libsystem_pthreaddylib 0x3a554959 + 140 9 libsystem_pthreaddylib 0x3a5548cb _pthread_start + 102 10 libsystem_pthreaddylib 0x3a552ae8 thread_start + 8 ) dSYM UUID: 8AA8370C-D292-3051-BF23-B46128B941E2 CPU Type: armv7 Slide Address: 0x00004000 Binary Image: FengYunZhiBo Base Address: 0x00025000

3、使用 dwarfdump 导出 异常信息

进入 终端 输入,$dSYMPath 就是 第一步获取的 dsym 文件的路径 ,然后回车,就可以看到 错误信息了

dwarfdump --arch=armv7 --lookup 0x8aa981 $dSYMPath

0x0172f6da: Compile Unit: length = 0x00005ec0 version = 0x0002 abbr_offset = 0x00000000 addr_size = 0x04 (next CU at 0x0173559e)

0x0172f6e5: TAG_compile_unit [233]

AT_producer( "Apple LLVM version 50 (clang-500276) (based on LLVM 33svn)" )

AT_language( DW_LANG_C99 )

AT_name( "libavformat/rtpencc" )

AT_low_pc( 0x008a9e14 )

AT_stmt_list( 0x0027eb6a )

AT_comp_dir( "/Users/fyzb0/Desktop/ffmpegFastBuild/build/src/ffmpeg-21" )

AT_APPLE_optimized( 0x01 )

0x01734bec: TAG_subprogram [351]

AT_name( "rtp_write_packet" )

AT_decl_file( "libavformat/rtpencc" )

AT_decl_line( 483 )

AT_prototyped( 0x01 )

AT_type( {0x01730ca0} ( int ) )

AT_APPLE_isa( 0x01 )

AT_low_pc( 0x008aa37c )

AT_high_pc( 0x008aaba4 )

AT_frame_base( r7 )

AT_APPLE_omit_frame_ptr( 0x01 )

0x01734c8b: TAG_lexical_block [51]

AT_ranges( 0x0011e928

[0x008aa5b4 - 0x008aab8c)

[0x008aab96 - 0x008aaba4)

End )

Line table dir : 'libavformat'

Line table file: 'rtpencc' line 322, column 0 with start address 0x00000000008aa968

Looking up address: 0x00000000008aa981 in debug_frame found!

0x00036e30: FDE

length: 0x0000000c

CIE_pointer: 0x00000000

start_addr: 0x008aa37c rtp_write_packet

range_size: 0x00000828 (end_addr = 0x008aaba4)

Instructions: 0x008aa37c: CFA=4294967295+4294967295

一般情况下, 项目编译完 dSYM 文件和 app 文件在同一个目录

如果未发现 dSYM 文件呢

找到dSYM文件后, 如果需要查看UUID的话, 在文件所在目录下, 输入以下指令

atos 是一个可以把地址转换为函数名(包括行号)的工具, 它和 dwarfdump 为mac os自带工具

另外, 我们可以通过Xcode菜单栏中Window -> Device and Simulator -> View logs 查看手机运行 crash log

右侧的 log信息 , 第一次加载的时候是 未被符号话 的,

由于Xcode内置了 symbolicatecrash 工具, 所以过了一会这个 log 会显示出函数调用信息

模拟器:

真机(iOS设备):

若文中有任何错误, 请不吝赐教

参考

Bugly符号表使用

手动解析CrashLog之----方法篇

以上就是关于ios中友盟统计怎么通过.dsym文件分析崩溃日志全部的内容,包括:ios中友盟统计怎么通过.dsym文件分析崩溃日志、ios 怎么查看崩溃日志、Xcode 之dSYM 文件等相关内容解答,如果想了解更多相关内容,可以关注我们,你们的支持是我们更新的动力!

欢迎分享,转载请注明来源:内存溢出

原文地址:https://www.54852.com/web/9268080.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-26
下一篇2023-04-26

发表评论

登录后才能评论

评论列表(0条)

    保存