<p style="margin-bottom:16px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol'; font-size:16px; line-height:25.6px; margin-top:0px!important"> <strong>Coredump </strong>是分析<a class="replace_word" href="http://lib.csdn.net/base/android" rel="noopener noreferrer" style="color:rgb(223,52,52); text-decoration:none; font-weight:bold" target="_blank" title="Android知识库">Android</a> native exception和kernel exception的利器,coredump是核心转储,可以理解为当进程发生异常无法挽救时,OS机制把这块出问题的内存取出来打包成核心转储供给离线分析用。有了coredump 不但可以定位具体出异常的代码所在文件行数,还可以离线调试,一步步还原问题现场,抓出导致异常真凶.<strong>但是</strong>很多时候由于系统挂得太突然等某些原因来不及打包coredump,导致无法获取到核心转储,只留下一堆 <strong>tombstone </strong>的残余信息,要使用有限的调试信息分析问题原因并解决之,这个时候GNU tools工具家族的addr2line工具就可以发挥作用了,addr2line工具可以根据内存地址加上符号库文件即可“翻译”出代码出错的具体位置(这里工具定位到的代码位置很多情况下只是供参考,不一定是真正的错误原因,特别是内存被踩的情况)。</p>
<p style="margin-top:0px; margin-bottom:16px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol'; font-size:16px; line-height:25.6px"> <strong>tombstone</strong>的本意是“墓碑”,这里形象的用于描述进程挂了之后留下供调试的线索,</p>
<p style="margin-top:0px; margin-bottom:16px; padding-top:0px; padding-bottom:0px; color:rgb(51,51,51); font-family:'Helvetica Neue',Helvetica,'Segoe UI',Arial,freesans,sans-serif,'Apple Color Emoji','Segoe UI Emoji','Segoe UI Symbol'; font-size:16px; line-height:25.6px"> 如下是某进程崩溃后留下的 tombstone 中的的 backtrace:</p>
<pre style="white-space:pre-wrap; word-wrap:normal; font-size:13.6px; line-height:1.45; font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace; margin-top:0px; margin-bottom:16px; padding:16px; overflow:auto; color:rgb(51,51,51); background-color:rgb(247,247,247)"><code class="hljs" style="display:inline; padding:0px; color:rgb(0,0,0); overflow:initial; font-family:Consolas,'Liberation Mono',Menlo,Courier,monospace; margin:0px; font-size:13.6px; word-break:normal; border:0px; max-width:initial; line-height:inherit; word-wrap:normal; background:0px 0px transparent">Revision: '0'
ABI: 'arm64'
pid: 24377, tid: 24377, name: gx_fpd >>> /system/bin/gx_fpd <<<
signal 6 (SIGABRT), code -6 (SI_TKILL), fault addr --------
x0 <span class="hljs-number" style="color:teal">00000000000</span>00000 x1 <span class="hljs-number" style="color:teal">00000000000</span>05f39 x2 <span class="hljs-number" style="color:teal">00000000000</span>00006 x3 <span class="hljs-number" style="color:teal">00000000000</span>00000
x4 <span class="hljs-number" style="color:teal">00000000000</span>00000 x5 <span class="hljs-number" style="color:teal">00000000000</span>00001 x6 <span class="hljs-number" style="color:teal">00000000000</span>00000 x7 <span class="hljs-number" style="color:teal">00000000000</span>00000
x8 <span class="hljs-number" style="color:teal">00000000000</span>00083 x9 <span class="hljs-number" style="color:teal">0000007</span>fb4eec110 x10 <span class="hljs-number" style="color:teal">00000000000</span>00002 x11 <span class="hljs-number" style="color:teal">00000000000</span>00003
x12 <span class="hljs-number" style="color:teal">00000000000</span>00000 x13 <span class="hljs-number" style="color:teal">00000000000</span>00043 x14 <span class="hljs-number" style="color:teal">0000007</span>fcc97a768 x15 <span class="hljs-number" style="color:teal">00000000000</span>00000
x16 <span class="hljs-number" style="color:teal">0000007</span>fb<span class="hljs-number" style="color:teal">4b866a8</span> x17 <span class="hljs-number" style="color:teal">0000007</span>fb4b48b6c x18 <span class="hljs-number" style="color:teal">00000000000</span>00002 x19 <span class="hljs-number" style="color:teal">0000007</span>fb<span class="hljs-number" style="color:teal">4f670a8</span>
x20 <span class="hljs-number" style="color:teal">0000007</span>fb4f66fe8 x21 <span class="hljs-number" style="color:teal">00000000000</span>0000b x22 <span class="hljs-number" style="color:teal">00000000000</span>00006 x23 <span class="hljs-number" style="color:teal">000000558221</span>9f90
x24 <span class="hljs-number" style="color:teal">0000007</span>fcc97ac90 x25 <span class="hljs-number" style="color:teal">0000007</span>fb4e04d18 x26 <span class="hljs-number" style="color:teal">00000000000</span>00000 x27 <span class="hljs-number" style="color:teal">00000000000</span>00000
x |
|