SORU
15 Mart 2011, Salı


Nasıl Android addr2line kullanmak

Bir çok iş parçacıklı bir hata ayıklama alamıyorum gibi benim uygulama ile sıkışmış, ben hata SIGSEGV ile çöker. Benim doğduğum kütüphane adresleri veren LogCat gelen bilgi çok olsun. Eğer benim kod içine bu adresleri alıştırabilseydim faydalı olacaktır.

Herkes android-Mall of Sofia ile sağlanan addr2line, nasıl kullanılacağı hakkında bir fikriniz var mı?

CEVAP
15 Mart 2011, Salı


Hadi logcat aşağıdaki crash log (bu benim projelerinden biri olduğunu) gösterir ki:

I/DEBUG   (   31): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG   (   31): Build fingerprint: 'generic/sdk/generic:2.3/GRH55/79397:eng/test-keys'
I/DEBUG   (   31): pid: 378, tid: 386  >>> com.example.gltest <<<
I/DEBUG   (   31): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
I/DEBUG   (   31):  r0 001dbdc0  r1 00000001  r2 00000000  r3 00000000
I/DEBUG   (   31):  r4 00000000  r5 40a40000  r6 4051a480  r7 42ddbee8
I/DEBUG   (   31):  r8 43661b24  r9 42ddbed0  10 42ddbebc  fp 41e462d8
I/DEBUG   (   31):  ip 00000001  sp 436619d0  lr 83a12f5d  pc 8383deb4  cpsr 20000010
I/DEBUG   (   31):          #00  pc 0003deb4  /data/data/com.example.gltest/lib/libnativemaprender.so
I/DEBUG   (   31):          #01  pc 00039b76  /data/data/com.example.gltest/lib/libnativemaprender.so
I/DEBUG   (   31):          #02  pc 00017d34  /system/lib/libdvm.so

Son 3 satır; bu çağrı yığını. 'pc' program sayacı, yığın #00 kare için pc kazasının meydana geldiği adresi verir. Bu addr2line geçmek için telefon numarası.

Ben kullanıyorum çalıştırılabilir $NDK/toolchains/arm-linux-androideabi-4.4.3/prebuilt/linux-x86/bin; $PATH içinde olduğundan emin olun yer r5, Mall of Sofia kullanıyorum. Kullanılacak komut gibi görünüyor

arm-linux-androideabi-addr2line -C -f -e obj/local/armeabi/libXXX.so <address>

Ya da, bu durumda yukarıda:

arm-linux-androideabi-addr2line -C -f -e obj/local/armeabi/libnativemaprender.so 0003deb4

Kilitlenme konumunu verir.

Not:

  • -C bayrağı C kodu demangle
  • Kullanımı .altında dosya yani bu yana n/local/armeabi, non-şeritli versiyonu

2.3 AVD ile üniversite eğitim r5 kullanırken de, aslında Olası çok iş parçacıklı kod hata ayıklama.

Bunu Paylaş:
  • Google+
  • E-Posta
Etiketler:

YORUMLAR

SPONSOR VİDEO

Rastgele Yazarlar

  • eisleyhead

    eisleyhead

    11 Ocak 2006
  • Google Россия

    Google Ро

    9 Temmuz 2007
  • Lena Danya

    Lena Danya

    11 NİSAN 2010