对于提交的苹果官方的app,在审核的时候会给我们一些crash文件,对于这些有用的文件,里面是关于我们的bug的一些信息,那么该如何去调试呢

第一步:在任意目录创建一个目录,用来调试crash,我这里创建一个crash目录 
第二步:将之前Archive的文件copy到crash目录里面

其中包括两个文件.app和.app.dSYM

如果找不到的话可以按照下面的步骤进行

先到Organizer

1,找到提交那个时刻的Archive文件,选中,show in Finder

2,然后到达这里,然后再选中红色区域,会出现3中所示的提示

3,ok显示包内容,然后自己找找吧,肯定会有的

copy就好了

第三步:将symbolicatecrash工具copy到crash目录

找不到这个文件可以去

/Applications/Xcode.app/Contents/Developer/Platforms/iPhoneOS.platform/Developer/Library/PrivateFrameworks/DTDeviceKit.framework/Versions/A/Resources

这里看看,应该就会有了。

第四步:将要调试的crash文件copy到crash目录

这个crash文件,这里是来自苹果官方的,其实有时候也是来自其他的用户的电脑上的。 
第五步:通过命令进行测试 
打开终端,转到crash目录 
执行如下命令:

./symbolicatecrash ./2013-08-16-035933_DLiPad.crash ./appname.app.dSYM > symbol.crash
cat ./symbol.crash

结果如下:

Incident Identifier: 5434D911-E207-4D79-9139-40EA4EA76B45
CrashReporter Key:   d11ed3a4adbb0d9ca4d6016e73e439640f95f289
Hardware Model:      xxx
Process:         appname [8158]
Path:            /var/mobile/Applications/2AB1E8EB-6ECE-44F4-8195-4042339DD359/appname.app/appname
Identifier:      appname
Version:         ??? (???)
Code Type:       ARM (Native)
Parent Process:  launchd [1] Date/Time:       2013-08-16 03:59:33.513 +0800
OS Version:      iOS 6.1.3 (10B329)
Report Version:  104 Exception Type:  EXC_CRASH (SIGABRT)
Exception Codes: 0x0000000000000000, 0x0000000000000000
Crashed Thread:  0 Last Exception Backtrace:
0   CoreFoundation                    0x3126029e 0x3119e000 + 795294
1   libobjc.A.dylib               0x3910497a 0x390fc000 + 35194
2   UIKit                         0x333f537c 0x33065000 + 3736444
3   UIKit                         0x3323758e 0x33065000 + 1910158
4   UIKit                         0x330c079c 0x33065000 + 374684
5   UIKit                         0x33068c34 0x33065000 + 15412
6   UIKit                         0x330686c8 0x33065000 + 14024
7   UIKit                         0x33068116 0x33065000 + 12566
8   GraphicsServices                  0x34d5c59e 0x34d56000 + 26014
9   GraphicsServices                  0x34d5c1ce 0x34d56000 + 25038
10  CoreFoundation                    0x3123516e 0x3119e000 + 618862
11  CoreFoundation                    0x31235112 0x3119e000 + 618770
12  CoreFoundation                    0x31233f94 0x3119e000 + 614292
13  CoreFoundation                    0x311a6eb8 0x3119e000 + 36536
14  CoreFoundation                    0x311a6d44 0x3119e000 + 36164
15  UIKit                         0x330bf480 0x33065000 + 369792
16  UIKit                         0x330bc2fc 0x33065000 + 357116
17  appname                            0x000cf358 0xce000 + 4952
18  libdyld.dylib                 0x3953bb1c 0x3953a000 + 6940 Thread 0 name:  Dispatch queue: com.apple.main-thread
Thread 0 Crashed:
0   libsystem_kernel.dylib            0x39602350 __pthread_kill + 8
1   libsystem_c.dylib             0x3957911e pthread_kill + 54
2   libsystem_c.dylib             0x395b596e abort + 90
3   libc++abi.dylib               0x38b53d4a abort_message + 70
4   libc++abi.dylib               0x38b50ff4 default_terminate() + 20
5   libobjc.A.dylib               0x39104a74 _objc_terminate() + 144
6   libc++abi.dylib               0x38b51078 safe_handler_caller(void (*)()) + 76
7   libc++abi.dylib               0x38b51110 std::terminate() + 16
8   libc++abi.dylib               0x38b52594 __cxa_rethrow + 84
9   libobjc.A.dylib               0x391049cc objc_exception_rethrow + 8
10  CoreFoundation                    0x311a6f1c CFRunLoopRunSpecific + 452
11  CoreFoundation                    0x311a6d44 CFRunLoopRunInMode + 100
12  UIKit                         0x330bf480 -[UIApplication _run] + 664
13  UIKit                         0x330bc2fc UIApplicationMain + 1116
14  appname                                0x000cf358 0xce000 + 4952
15  libdyld.dylib                 0x3953bb1c start + 0 Thread 1:
0   libsystem_kernel.dylib            0x39602d98 __workq_kernreturn + 8
1   libsystem_c.dylib             0x39550cf6 _pthread_workq_return + 14
2   libsystem_c.dylib             0x39550a12 _pthread_wqthread + 362
3   libsystem_c.dylib             0x395508a0 start_wqthread + 4 Thread 2 name:  Dispatch queue: com.apple.libdispatch-manager
Thread 2:
0   libsystem_kernel.dylib            0x395f2648 kevent64 + 24
1   libdispatch.dylib             0x39522974 _dispatch_mgr_invoke + 792
2   libdispatch.dylib             0x39522654 _dispatch_mgr_thread$VARIANT$mp + 32 Thread 3:
0   libsystem_kernel.dylib            0x39602d98 __workq_kernreturn + 8
1   libsystem_c.dylib             0x39550cf6 _pthread_workq_return + 14
2   libsystem_c.dylib             0x39550a12 _pthread_wqthread + 362
3   libsystem_c.dylib             0x395508a0 start_wqthread + 4 Thread 4 name:  WebThread
Thread 4:
0   libsystem_kernel.dylib            0x395f1eb4 mach_msg_trap + 20
1   libsystem_kernel.dylib            0x395f2048 mach_msg + 36
2   CoreFoundation                    0x31235040 __CFRunLoopServiceMachPort + 124
3   CoreFoundation                    0x31233d9e __CFRunLoopRun + 878
4   CoreFoundation                    0x311a6eb8 CFRunLoopRunSpecific + 352
5   CoreFoundation                    0x311a6d44 CFRunLoopRunInMode + 100
6   WebCore                       0x37196500 RunWebThread(void*) + 440
7   libsystem_c.dylib             0x3955b30e _pthread_start + 306
8   libsystem_c.dylib             0x3955b1d4 thread_start + 4 Thread 0 crashed with ARM Thread State (32-bit):
    r0: 0x00000000    r1: 0x00000000      r2: 0x00000000      r3: 0x3b0f8534
    r4: 0x00000006    r5: 0x3b0f8b88      r6: 0x1d844f24      r7: 0x2fd329f4
    r8: 0x1d844f00    r9: 0x00000300     r10: 0x334de04b     r11: 0x1c535350
    ip: 0x00000148    sp: 0x2fd329e8      lr: 0x39579123      pc: 0x39602350
  cpsr: 0x00000010
......

再执行如下命令:

dwarfdump --lookup 0x000cf358 --arch armv7 appname.app.dSYM/

关键是在这里 0x000cf358 ,他是来自这里的

0   libsystem_kernel.dylib            0x39602350 __pthread_kill + 8 
1   libsystem_c.dylib             0x3957911e pthread_kill + 54 
2   libsystem_c.dylib             0x395b596e abort + 90 
3   libc++abi.dylib               0x38b53d4a abort_message + 70 
4   libc++abi.dylib               0x38b50ff4 default_terminate() + 20 
5   libobjc.A.dylib               0x39104a74 _objc_terminate() + 144 
6   libc++abi.dylib               0x38b51078 safe_handler_caller(void (*)()) + 76 
7   libc++abi.dylib               0x38b51110 std::terminate() + 16 
8   libc++abi.dylib               0x38b52594 __cxa_rethrow + 84 
9   libobjc.A.dylib               0x391049cc objc_exception_rethrow + 8 
10  CoreFoundation                    0x311a6f1c CFRunLoopRunSpecific + 452 
11  CoreFoundation                    0x311a6d44 CFRunLoopRunInMode + 100 
12  UIKit                         0x330bf480 -[UIApplication _run] + 664 
13  UIKit                         0x330bc2fc UIApplicationMain + 1116 
14  应用的名称                                0x000cf358 0xce000 + 4952 
15  libdyld.dylib                 0x3953bb1c start + 0

结果如下:

----------------------------------------------------------------------
 File: appname.app.dSYM/Contents/Resources/DWARF/appname (armv7)
----------------------------------------------------------------------
Looking up address: 0x00000000000cf358 in .debug_info... found! 0x0015d390:
 Compile Unit: length = 0x00001fc6  version = 0x0002  abbr_offset = 
0x00000000  addr_size = 0x04  (next CU at 0x0015f35a) 0x0015d39b: TAG_compile_unit [1] *
             AT_producer( "Apple LLVM version 4.2 (clang-425.0.24) (based on LLVM 3.2svn)" )
             AT_language( DW_LANG_ObjC )
             AT_name( "/Users/zhy/Downloads/ios/vlink_app_xunyi/xunYi7/library/ASIHttpRequest/ASIDownloadCache.m" )
             AT_low_pc( 0x000ccfc0 )
             AT_stmt_list( 0x0002cf0b )
             AT_comp_dir( "/Users/zhy/Downloads/ios/vlink_app_xunyi" )
             AT_APPLE_major_runtime_vers( 0x02 ) 0x0015dd38:     TAG_subprogram [53] *
                 AT_name( "-[ASIDownloadCache isCachedDataCurrentForRequest:]" )
                 AT_decl_file( "/Users/zhy/Downloads/ios/vlink_app_xunyi/xunYi7/library/ASIHttpRequest/ASIDownloadCache.m" )
                 AT_decl_line( 315 )
                 AT_prototyped( 0x01 )
                 AT_type( {0x0015d490} ( BOOL ) )
                 AT_APPLE_isa( 0x01 )
                 AT_low_pc( 0x000cf278 )
                 AT_high_pc( 0x000cf9e2 )
                 AT_frame_base( r7 )
                 AT_object_pointer( {0x0015dd54} ) 0x0015dd86:         TAG_lexical_block [10] *
                     AT_low_pc( 0x000cf2ca )
                     AT_high_pc( 0x000cf9de )
Line table dir : '/Users/zhy/Downloads/ios/vlink_app_xunyi/xunYi7/library/ASIHttpRequest'
Line table file: 'ASIDownloadCache.m' line 320, column 3 with start address 0x00000000000cf340 Looking up address: 0x00000000000cf358 in .debug_frame... found! 0x00007290: FDE
        length: 0x0000000c
   CIE_pointer: 0x00000000
    start_addr: 0x000cf278 -[ASIDownloadCache isCachedDataCurrentForRequest:]
    range_size: 0x0000076a (end_addr = 0x000cf9e2)
  Instructions: 0x000cf278: CFA=4294967295+4294967295

到这里就知道问题所在了吧

Line table dir : '/Users/zhy/Downloads/ios/vlink_app_xunyi/xunYi7/library/ASIHttpRequest'
Line table file: 'ASIDownloadCache.m' line 320, column 3 with start address 0x00000000000cf340

如果有多个crash文件的话,可以重复操作一遍就好了。

苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)的更多相关文章

  1. iOS 苹果官方 Crash文件分析方法 (iOS系统Crash文件分析方法)

    时间2013-08-20 12:49:20 GoWhich原文  http://www.gowhich.com/blog/view/id/343 苹果官方 Crash文件分析方法 (iOS系统Cras ...

  2. (转载)iOS系统Crash文件分析方法

    转自: http://ios-iphone.diandian.com/post/2012-05-18/19440182 Xcode 4.3的symbolicatecrash的位置和老版本的不一致了. ...

  3. ios系统crash文件分析

    分析crash文件必备条件:crash文件的uuid,app的uuid,dsym文件的uuid必须一致 1> crash文件的uuid为Binary Images:0x4000 - 0x1173 ...

  4. iOS系统网络抓包方法

    转到自己的博客收藏. 1. 网络共享 + 可视化抓包工具 基本原理 原理比较简单,ios设备通过代理方式共享连接mac电脑的无线网卡,使用抓包工具抓包,然后进行分析(我们推荐使用Wireshark,在 ...

  5. ios系统 ipa文件 打包流程详解 及 常见问题处理

    注:先反省一下,原本打算一天一篇,每天进步一点点,但是最近变懒了,居然三天没有更新,在此告诫各位道友及我自己,程序员需戒欲,搞技术需持之以恒,不能三天打鱼,两天晒外. 现在步入主题,前段时间使用xco ...

  6. iOS——系统提供的dispatch方法

    // 后台执行: dispatch_async(dispatch_get_global_queue(0,0), ^{ // something }); // 主线程执行: dispatch_async ...

  7. xcode编写c/c++静态库使用系统头文件问题

    c/c++编写的静态库中有引用ios系统头文件比如: #include <EGL/egl.h> 在xcode编译的时候需要设置静态库程序: Build Settings-Header Se ...

  8. 【转】 分析iOS Crash文件:符号化iOS Crash文件的3种方法

    当你的应用提交到AppStore或者各个渠道之后,请问你多久会拿到crash文件?你如何分析crash文件的呢? 上传crash文件 你的应用应当有模块能够在应用程序crash的时候上传crash信息 ...

  9. 分析iOS Crash文件:符号化iOS Crash文件的3种方法

    转自:http://www.cocoachina.com/industry/20140514/8418.html 转自wufawei的博客 当你的应用提交到App Store或者各个渠道之后,请问你多 ...

随机推荐

  1. Codeforces Round #343 (Div. 2) C. Famil Door and Brackets

    题目链接: http://codeforces.com/contest/629/problem/C 题意: 长度为n的括号,已经知道的部分的长度为m,现在其前面和后面补充‘(',或')',使得其长度为 ...

  2. android控件---spinner

    spinner下拉列表框的列表项有两种配置方式: 1.通过资源文件配置,通过在values种的xml,比如strings.xml中使用<string-array>元素添加制定列表项内容,然 ...

  3. pom配置进行版本号统一管理

    在pom.xml中配置 <properties>在该配置中添加   <project.build.sourceEncoding>UTF-8</project.build. ...

  4. 如何在winform DataGridView控件的DataGridViewButtonColumn按钮列中禁用按钮

    原文:http://msdn.microsoft.com/en-us/library/ms171619(v=vs.85).ASPX public class DataGridViewDisableBu ...

  5. Maintainable HashCode and Equals Using Apache Commons

    Java hashCode and equals methods can be tricky to implement correctly. Fortunately, all majors IDEs ...

  6. POJ 1459 Power Network(网络最大流,dinic算法模板题)

    题意:给出n,np,nc,m,n为节点数,np为发电站数,nc为用电厂数,m为边的个数.      接下来给出m个数据(u,v)z,表示w(u,v)允许传输的最大电力为z:np个数据(u)z,表示发电 ...

  7. lintcode:Fibonacci 斐波纳契数列

    题目: 斐波纳契数列 查找斐波纳契数列中第 N 个数. 所谓的斐波纳契数列是指: 前2个数是 0 和 1 . 第 i 个数是第 i-1 个数和第i-2 个数的和. 斐波纳契数列的前10个数字是: 0, ...

  8. ubuntu下安装pthread的manpages(man 手册) 在Ubuntu中查看STL帮助

    http://blog.csdn.net/leisure512/article/details/4881391 由于学习多线程编程,所以用到pthread,但是man的时候却发现没有pthread函数 ...

  9. System.Windows.Forms.AxHost.InvalidActiveXStateException”类型的异常在 ESRI.ArcGIS.AxControls.dll 中发生,但未在用户代码中进行处理

    private void CopyAndOverwriteMap() { //IObjectCopy接口变量申明 IObjectCopy objectCopy = new ObjectCopyClas ...

  10. HTTP会话原理解释与应用

    一.什么是会话 首先解释一下什么是会话.在计算机术语中,会话是指一个终端用户与交互系统进行通讯的过程,比如从输入账户密码进入操作系统到退出操作系统就是一个会话过程.会话较多用于网络上,TCP的三次握手 ...