Android native crash log分析

來源:互聯網
上載者:User

原文地址::http://wiki.impjq.net/doku.php?id=android:android-jni:android-ndk-stacktrace-analyzer

 

 

找到兩種方法一種是使用google 的stack工具,一種是使用Analyze
android-ndk stack trace.

參考:

  1. http://code.google.com/p/android-ndk-stacktrace-analyzer/wiki/Usage
  2. http://source.android.com/porting/debugging_native.html

stack下載:

  • http://bootloader.wdfiles.com/local--files/linux%3Aandroid%3Acrashlog/stack

android-ndk-stacktrace-analyzer用法

android-ndk/android-ndk-1.6_r1/build/prebuilt/linux-x86/arm-eabi-4.2.1/bin/arm-eabi-objdump -S mylib.so > mylib.asmpython parse_stack.py mylib.asm logcat.txt

舉例:

D:/stack>python parse_stack.py libslpi.asm logcat.txt0x000b7e80:            pjsua_acc_unregister + 0x0068D:/stack>lslibslpi.asm  libslpi.so  logcat.txt  parse_stack.py  stack.py

stack用法:

python stack.py logcat.txt

說明:stack看起來是google內部使用的工具,在windows上跑不起來,需要在Linux環境下,還有使用的時候會提示so檔案的位置不存在,按照它的要求,建立相應的目錄,並放入so檔案就可以了。舉例:

root@impjq:~/stack# python stack.py logcat.txtmake: build/core/envsetup.mk: No such file or directorymake: *** No rule to make target `build/core/envsetup.mk'.Searching for native crashes in logcat.txtReading symbols frompid: 4538, tid: 4553  >>> com.arcsoft.ddtui <<<signal 11 (SIGSEGV), fault addr deadbaad  r0 00000000  r1 afd14679  r2 00000027  r3 00000070  r4 afd42328  r5 00000000  r6 00000000  r7 00000cb0  r8 80fac890  r9 485d8d8c  10 485d8ce4  fp 0000033c  ip 00001770  sp 485d8880  lr deadbaad  pc afd11cd0arm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such filearm-eabi-addr2line: '/system/lib/libc.so': No such fileStack Trace:  ADDR      FUNCTION              FILE:LINE  00011cd0  (unknown)             (unknown)  00018fac  (unknown)             (unknown)  000b7e80  pjsua_acc_unregister  ??:0Stack Data:  ADDR      VALUE     FILE:LINE/FUNCTION  485d8840  00000340  485d8844  afd146a9  (unknown)                      (unknown)  485d8848  afd42498  (unknown)                      (unknown)  485d884c  afd43bb4  (unknown)                      (unknown)  485d8850  00000000  485d8854  afd156c3  (unknown)                      (unknown)  485d8858  afd14679  (unknown)                      (unknown)  485d885c  afd14679  (unknown)                      (unknown)  485d8860  00000070  485d8864  afd42328  (unknown)                      (unknown)  485d8868  00000000  485d886c  485d8894  485d8870  00000cb0  485d8874  afd1491b  (unknown)                      (unknown)  485d8878  df002777  485d887c  e3a070ad  485d8880  485d8df4  485d8884  80fad540  485d8888  00000cb0  485d888c  afd14c81  (unknown)                      (unknown)  485d8890  afd4254c  (unknown)                      (unknown)  485d8894  fffffbdf  485d8898  00000002  485d889c  485d8df4  485d88a0  80fad540  485d88a4  afd18fb1  (unknown)                      (unknown)  485d88a8  00000946  485d88ac  00000946  485d88b0  80f5b018  ??:0                      ??  485d88b4  80eb7e84  ??:0                      pjsua_acc_unregister

指定路徑:

root@impjq:~/stack# python stack.py  --symbols-dir=. logcat.txt

這樣會提示某些lib不存在

root@impjq:~/stack# python stack.py  --symbols-dir=. logcat.txtmake: build/core/envsetup.mk: No such file or directorymake: *** No rule to make target `build/core/envsetup.mk'.  Stop.Searching for native crashes in logcat.txtReading symbols from .pid: 4538, tid: 4553  >>> com.arcsoft.ddtui <<<signal 11 (SIGSEGV), fault addr deadbaad  r0 00000000  r1 afd14679  r2 00000027  r3 00000070  r4 afd42328  r5 00000000  r6 00000000  r7 00000cb0  r8 80fac890  r9 485d8d8c  10 485d8ce4  fp 0000033c  ip 00001770  sp 485d8880  lr deadbaad  pc afd11cd0arm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './data/data/com.arcsoft.ddtui/lib/libslpi.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './system/lib/libc.so': No such filearm-eabi-addr2line: './data/data/com.arcsoft.ddtui/lib/libslpi.so': No such filearm-eabi-addr2line: './data/data/com.arcsoft.ddtui/lib/libslpi.so': No such file

按照它的提示,建立相應的目錄就可以了,其中libc.so我是直接從ndk裡拷貝過來的,這樣正常的運行結果如下:

root@impjq:~/stack# python stack.py  --symbols-dir=. logcat.txtmake: build/core/envsetup.mk: No such file or directorymake: *** No rule to make target `build/core/envsetup.mk'.  Stop.Searching for native crashes in logcat.txtReading symbols from .pid: 4538, tid: 4553  >>> com.arcsoft.ddtui <<<signal 11 (SIGSEGV), fault addr deadbaad  r0 00000000  r1 afd14679  r2 00000027  r3 00000070  r4 afd42328  r5 00000000  r6 00000000  r7 00000cb0  r8 80fac890  r9 485d8d8c  10 485d8ce4  fp 0000033c  ip 00001770  sp 485d8880  lr deadbaad  pc afd11cd0Stack Trace:  ADDR      FUNCTION              FILE:LINE  00011cd0  pclose                /usr/local/google/home/digit/android/main/cupcake/android/bionic/libc/unistd/popen.c:146  00018fac  strtod                /opt/digit/android/main/cupcake/android/bionic/libc/stdlib/strtod.c:1327  000b7e80  pjsua_acc_unregister  ??:0Stack Data:  ADDR      VALUE     FILE:LINE/FUNCTION  485d8840  00000340  485d8844  afd146a9  /usr/local/google/home/digit/android/main/cupcake/android/bionic/libc/stdio/setvbuf.c:84                      setvbuf  485d8848  afd42498  libgcc2.c:0                      __timer_table  485d884c  afd43bb4  libgcc2.c:0                      __timer_table  485d8850  00000000  485d8854  afd156c3  /usr/local/google/home/digit/android/main/cupcake/android/bionic/libc/stdio/vfprintf.c:396                      vfprintf  485d8858  afd14679  /usr/local/google/home/digit/android/main/cupcake/android/bionic/libc/stdio/setvbuf.c:67                      setvbuf  485d885c  afd14679  /usr/local/google/home/digit/android/main/cupcake/android/bionic/libc/stdio/setvbuf.c:67                      setvbuf  485d8860  00000070  485d8864  afd42328  libgcc2.c:0                      __timer_table  485d8868  00000000  485d886c  485d8894  485d8870  00000cb0  485d8874  afd1491b  /usr/local/google/home/digit/android/main/cupcake/android/bionic/libc/stdio/tempnam.c:50                      tempnam  485d8878  df002777  485d887c  e3a070ad  485d8880  485d8df4  485d8884  80fad540  485d8888  00000cb0  485d888c  afd14c81  /usr/local/google/home/digit/android/main/cupcake/android/bionic/libc/stdio/ungetc.c:139                      ungetc  485d8890  afd4254c  libgcc2.c:0                      __timer_table  485d8894  fffffbdf  485d8898  00000002  485d889c  485d8df4  485d88a0  80fad540  485d88a4  afd18fb1  /opt/digit/android/main/cupcake/android/bionic/libc/stdlib/strtod.c:1327                      strtod  485d88a8  00000946  485d88ac  00000946  485d88b0  80f5b018  ??:0                      ??  485d88b4  80eb7e84  ??:0                      pjsua_acc_unregister

 

 

 

 

 

 

 

 

 

 

相關文章

聯繫我們

該頁面正文內容均來源於網絡整理,並不代表阿里雲官方的觀點,該頁面所提到的產品和服務也與阿里云無關,如果該頁面內容對您造成了困擾,歡迎寫郵件給我們,收到郵件我們將在5個工作日內處理。

如果您發現本社區中有涉嫌抄襲的內容,歡迎發送郵件至: info-contact@alibabacloud.com 進行舉報並提供相關證據,工作人員會在 5 個工作天內聯絡您,一經查實,本站將立刻刪除涉嫌侵權內容。

A Free Trial That Lets You Build Big!

Start building with 50+ products and up to 12 months usage for Elastic Compute Service

  • Sales Support

    1 on 1 presale consultation

  • After-Sales Support

    24/7 Technical Support 6 Free Tickets per Quarter Faster Response

  • Alibaba Cloud offers highly flexible support services tailored to meet your exact needs.