转自:http://blog.csdn.net/u011303816/article/details/44041171
从友盟中, 我们可能会得到如下信息:
<code class="hljs xml has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">Application received signal SIGSEGV (null) ( 0 CoreFoundation 0x00000001866fde64 <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">redacted</span>></span> + 160 1 libobjc.A.dylib 0x0000000196df80e4 objc_exception_throw + 60 2 CoreFoundation 0x00000001866fdd88 <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">redacted</span>></span> + 0 3 xxxDance 0x1005b9d94 _ZN15CTXAppidConvert17IsConnectionAppIdEPKc + 587496 4 libsystem_platform.dylib 0x000000019761494c _sigtramp + 52 5 ??? 0x0000000000000014 0x0 + 20 6 GLEngine 0x000000018a1e12c4 <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">redacted</span>></span> + 144 7 GLEngine 0x000000018a187f54 <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">redacted</span>></span> + 988 8 xxxDance 0x1003f5120 _ZN9_baidu_vi7CVArrayIjjE6AppendERKS1_ + 7920 9 xxxDance 0x1003f39a4 _ZN9_baidu_vi7CVArrayIjjE6AppendERKS1_ + 1908 10 xxxDance 0x10045c564 _ZN9_baidu_vi7CVArrayINS_12CVHttpClient16tag_PostDataInfoERS2_ED2Ev + 30940 11 xxxDance 0x100406ebc _ZN9_baidu_vi7CVArrayIN16_baidu_framework17tagHttpClientItemERS2_ED2Ev + 44932 12 xxxDance 0x100409278 _ZN9_baidu_vi7CVArrayI19tag_PaoPaoAttributeRS1_ED2Ev + 3260 13 libdispatch.dylib 0x000000019743d3ac <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">redacted</span>></span> + 24 14 libdispatch.dylib 0x000000019743d36c <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">redacted</span>></span> + 16 15 libdispatch.dylib 0x0000000197441980 _dispatch_main_queue_callback_4CF + 932 16 CoreFoundation 0x00000001866b56a0 <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">redacted</span>></span> + 12 17 CoreFoundation 0x00000001866b3748 <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">redacted</span>></span> + 1492 18 CoreFoundation 0x00000001865e11f4 CFRunLoopRunSpecific + 396 19 GraphicsServices 0x000000018f7775a4 GSEventRunModal + 168 20 UIKit 0x000000018af12784 UIApplicationMain + 1488 21 xxxDance 0x100200b6c xxxDance + 2100076 22 libdyld.dylib 0x0000000197466a08 <span class="hljs-tag" style="color: rgb(0, 102, 102); box-sizing: border-box;"><<span class="hljs-title" style="box-sizing: border-box; color: rgb(0, 0, 136);">redacted</span>></span> + 4 ) dSYM UUID: AC5A1E49-1E38-3CD7-BD6F-DE49294F03AF CPU Type: arm64 Slide Address: 0x0000000100000000 Binary Image: xxxDance Base Address: 0x0000000100044000</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li><li style="box-sizing: border-box; padding: 0px 5px;">2</li><li style="box-sizing: border-box; padding: 0px 5px;">3</li><li style="box-sizing: border-box; padding: 0px 5px;">4</li><li style="box-sizing: border-box; padding: 0px 5px;">5</li><li style="box-sizing: border-box; padding: 0px 5px;">6</li><li style="box-sizing: border-box; padding: 0px 5px;">7</li><li style="box-sizing: border-box; padding: 0px 5px;">8</li><li style="box-sizing: border-box; padding: 0px 5px;">9</li><li style="box-sizing: border-box; padding: 0px 5px;">10</li><li style="box-sizing: border-box; padding: 0px 5px;">11</li><li style="box-sizing: border-box; padding: 0px 5px;">12</li><li style="box-sizing: border-box; padding: 0px 5px;">13</li><li style="box-sizing: border-box; padding: 0px 5px;">14</li><li style="box-sizing: border-box; padding: 0px 5px;">15</li><li style="box-sizing: border-box; padding: 0px 5px;">16</li><li style="box-sizing: border-box; padding: 0px 5px;">17</li><li style="box-sizing: border-box; padding: 0px 5px;">18</li><li style="box-sizing: border-box; padding: 0px 5px;">19</li><li style="box-sizing: border-box; padding: 0px 5px;">20</li><li style="box-sizing: border-box; padding: 0px 5px;">21</li><li style="box-sizing: border-box; padding: 0px 5px;">22</li><li style="box-sizing: border-box; padding: 0px 5px;">23</li><li style="box-sizing: border-box; padding: 0px 5px;">24</li><li style="box-sizing: border-box; padding: 0px 5px;">25</li><li style="box-sizing: border-box; padding: 0px 5px;">26</li><li style="box-sizing: border-box; padding: 0px 5px;">27</li><li style="box-sizing: border-box; padding: 0px 5px;">28</li><li style="box-sizing: border-box; padding: 0px 5px;">29</li><li style="box-sizing: border-box; padding: 0px 5px;">30</li><li style="box-sizing: border-box; padding: 0px 5px;">31</li><li style="box-sizing: border-box; padding: 0px 5px;">32</li></ul>
找到当时上传代码时使用的DYSM文件,这文件通常在.xcarchive文件中。 右键该文件, 然后通过Terminal工具跳转到下面的DWARF文件夹中:
<code class="hljs r has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">$ cd ~/<span class="hljs-keyword" style="color: rgb(0, 0, 136); box-sizing: border-box;">...</span>/***.xcarchive/dSYMs/xxxDance.app.dSYM/Contents/Resources/DWARF</code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
然后执行
<code class="hljs lasso has-numbering" style="display: block; padding: 0px; color: inherit; box-sizing: border-box; font-family: 'Source Code Pro', monospace;font-size:undefined; white-space: pre; border-radius: 0px; word-wrap: normal; background: transparent;">$ atos <span class="hljs-attribute" style="box-sizing: border-box;">-arch</span> armv7 <span class="hljs-attribute" style="box-sizing: border-box;">-o</span> xxxMovie <span class="hljs-number" style="color: rgb(0, 102, 102); box-sizing: border-box;">0x1153b9</span></code><ul class="pre-numbering" style="box-sizing: border-box; position: absolute; width: 50px; top: 0px; left: 0px; margin: 0px; padding: 6px 0px 40px; border-right-width: 1px; border-right-style: solid; border-right-color: rgb(221, 221, 221); list-style: none; text-align: right; background-color: rgb(238, 238, 238);"><li style="box-sizing: border-box; padding: 0px 5px;">1</li></ul>
就可以看到这处内存地址反编译回来的源码行,可以有效地帮助分析原因。
注意,如果定位到的地址是UmengSignalHandler,要知道这个不是错误,是捕捉crash的方法,本身不引起crash, 当crash发生时由它来捕捉,直接忽略crash log中的 UmengSignalHandler 部分即可。
参考文章:
通过崩溃trace来查找问题原因