में एक SIGSEGV के कारण का पता लगाने के लिए मुझे अपने एंड्रॉइड ऐप क्रैश होने वाली रिपोर्टों की संख्या में वृद्धि हो रही है, क्रैश देशी कोड में होता है इसलिए एक स्टैकट्रैक नहीं बनाया जाता है। मेरे पास केवल एक मूल कार्य है और यह समस्या नहीं है क्योंकि इसे स्टार्टअप के दौरान एक बार कहा जाता है और समस्या 2-3 मिनट बाद होती है।एंड्रॉइड
मुझे मिल गया logcat से निम्न आंशिक डंप:
I/DEBUG (8704): pid: 9028, tid: 9136 >>> xxxx <<<
I/DEBUG (8704): at : (2012-10-30 21:10:42.000086303 UTC) 0
I/DEBUG (8704): signal 11 (SIGSEGV), fault addr deadbaad
I/DEBUG (8704): r0 00000000 r1 afd14691 r2 00000027 r3 00000070
I/DEBUG (8704): r4 afd42328 r5 00000000 r6 00000000 r7 0000a000
I/DEBUG (8704): r8 00000000 r9 4a77b900 10 4a77b8d8 fp 00000046
I/DEBUG (8704): ip 00001750 sp 4a77b590 lr deadbaad pc afd11ce4 cpsr 60000030
I/DEBUG (8704): d0 643a64696f72646e d1 6472656767756265
I/DEBUG (8704): d2 0000005d0000005b d3 0006000600060006
I/DEBUG (8704): d4 0120009c009c009c d5 000a000a000a000a
I/DEBUG (8704): d6 0012000600060006 d7 0000000000000000
I/DEBUG (8704): d8 0000004600000000 d9 43f0000000000000
I/DEBUG (8704): d10 4040000043080000 d11 0000000043ee464c
I/DEBUG (8704): d12 0000000000000000 d13 0000000000000000
I/DEBUG (8704): d14 0000000000000000 d15 0000000000000000
I/DEBUG (8704): d16 0505050507070707 d17 0b0b0b0b10101010
I/DEBUG (8704): d18 0707070703030303 d19 0000000000000000
I/DEBUG (8704): d20 0100010001000100 d21 0100010001000100
I/DEBUG (8704): d22 0000000000000000 d23 0000000000000000
I/DEBUG (8704): d24 0000000000000000 d25 0000000000000000
I/DEBUG (8704): d26 00f900f900f900f9 d27 00fb00fb00fb00fb
I/DEBUG (8704): d28 00f000f000f000f0 d29 00f500f500f500f5
I/DEBUG (8704): d30 01748000016e0000 d31 01818000017b0000
I/DEBUG (8704): scr 20000012
I/DEBUG (8704): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
I/DEBUG (8704): Build fingerprint: \'lge/lge_bprj/lgp970/lgp970:2.2.2/FRG83G/V10a_07-JUN-2011.422D181D:user/release-keys\'
I/DEBUG (8704): #00 pc 00011ce4 /system/lib/libc.so
I/DEBUG (8704): #01 pc 0000be32 /system/lib/libc.so
I/DEBUG (8704): #02 pc 0000cd92 /system/lib/libc.so
I/DEBUG (8704): #03 pc 000008d8 /system/lib/libstdc++.so
I/DEBUG (8704): #04 pc 0004efa4 /system/lib/libskia.so
I/DEBUG (8704): #05 pc 0006d00c /system/lib/libskia.so
I/DEBUG (8704): #06 pc 0006f414 /system/lib/libskia.so
I/DEBUG (8704):
I/DEBUG (8704): code around pc:
I/DEBUG (8704): afd11cc4 2d00682d e029d1fb b12b68db c05cf8df
I/DEBUG (8704): afd11cd4 f8442001 4798000c e054f8df 26002227
I/DEBUG (8704): afd11ce4 2000f88e eecaf7fb f7fc2106 f04feff8
I/DEBUG (8704): afd11cf4 91035180 460aa901 96012006 f7fc9602
I/DEBUG (8704): afd11d04 a905eb6e 20024632 eb78f7fc eeb6f7fb
I/DEBUG (8704):
I/DEBUG (8704): code around lr:
I/DEBUG (8704): deadba8c ffffffff ffffffff ffffffff ffffffff
I/DEBUG (8704): deadba9c ffffffff ffffffff ffffffff ffffffff
I/DEBUG (8704): deadbaac ffffffff ffffffff ffffffff ffffffff
I/DEBUG (8704): deadbabc ffffffff ffffffff ffffffff ffffffff
I/DEBUG (8704): deadbacc ffffffff ffffffff ffffffff ffffffff
I/DEBUG (8704):
I/DEBUG (8704): stack:
I/DEBUG (8704): 4a77b550 00000015
I/DEBUG (8704): 4a77b554 afd146c1 /system/lib/libc.so
I/DEBUG (8704): 4a77b558 afd425a0 /system/lib/libc.so
I/DEBUG (8704): 4a77b55c afd4254c /system/lib/libc.so
I/DEBUG (8704): 4a77b560 00000000
I/DEBUG (8704): 4a77b564 afd156db /system/lib/libc.so
I/DEBUG (8704): 4a77b568 afd14691 /system/lib/libc.so
I/DEBUG (8704): 4a77b56c afd14691 /system/lib/libc.so
I/DEBUG (8704): 4a77b570 00000070
I/DEBUG (8704): 4a77b574 afd42328 /system/lib/libc.so
I/DEBUG (8704): 4a77b578 00000000
I/DEBUG (8704): 4a77b57c 4a77b5a4
I/DEBUG (8704): 4a77b580 0000a000 [heap]
I/DEBUG (8704): 4a77b584 afd14933 /system/lib/libc.so
I/DEBUG (8704): 4a77b588 df002777
I/DEBUG (8704): 4a77b58c e3a070ad
I/DEBUG (8704): #00 4a77b590 afd43904 /system/lib/libc.so
I/DEBUG (8704): 4a77b594 afd103ec /system/lib/libc.so
I/DEBUG (8704): 4a77b598 afd42328 /system/lib/libc.so
I/DEBUG (8704): 4a77b59c 49687628
I/DEBUG (8704): 4a77b5a0 49687628
I/DEBUG (8704): 4a77b5a4 fffffbdf
I/DEBUG (8704): 4a77b5a8 afd42328 /system/lib/libc.so
I/DEBUG (8704): 4a77b5ac afd4374c /system/lib/libc.so
I/DEBUG (8704): 4a77b5b0 49687628
I/DEBUG (8704): 4a77b5b4 afd0be37 /system/lib/libc.so
I/DEBUG (8704): #01 4a77b5b8 49687660
I/DEBUG (8704): 4a77b5bc 00430a60 [heap]
I/DEBUG (8704): 4a77b5c0 00001424
I/DEBUG (8704): 4a77b5c4 4a77b8b0
I/DEBUG (8704): 4a77b5c8 00000000
I/DEBUG (8704): 4a77b5cc 49687628
I/DEBUG (8704): 4a77b5d0 49687628
I/DEBUG (8704): 4a77b5d4 00000000
I/DEBUG (8704): 4a77b5d8 4a77b8b0
I/DEBUG (8704): 4a77b5dc afd0cd95 /system/lib/libc.so
मेरा प्रश्न:
मुझे लगता है कि मैं मूल समारोह जिसमें SIGSEGV इस से होता है पा सकते हैं पता है, लेकिन मुझे यकीन है कि नहीं कर रहा हूँ इसे खोजने के लिए मूल पुस्तकालय कहां प्राप्त करें। यह किसी उपयोगकर्ता के फोन पर होता है, मेरे पास इसके लिए या उपयोगकर्ता के लिए कोई सीधी पहुंच नहीं है ... क्या इन पुस्तकालयों के साथ कोई वेबसाइट है या क्या मैं उन्हें बना सकता हूं फोन पर एक जैसा ही है? या क्या इन्हें डीबग करने का एक बेहतर तरीका है? पढ़ने के लिए
धन्यवाद, किसी भी विचार है स्वागत :-)
अद्यतन:
के रूप में सुझाव दिया है, इसलिए की तरह का उपयोग कर ndk-stack
:
./ndk-stack -sym LONGPATH/armeabi -dump foo.txt
जहां foo.txt शामिल है "फिंगरप्रिंट बनाएँ" सामान, कई सितारों के साथ एक लाइन से शुरू होता है (यह उस के लिए खोज करता है), लेकिन मुझे यह सब मिलता है:
********** Crash dump: **********
Build fingerprint: \'lge/lge_bprj/lgp970/lgp970:2.2.2/FRG83G/V10a_07-JUN-2011.422D181D:user/release-keys\'
और कार्यक्रम बंद हो जाता है ..
EDIT2:
arm-linux-androideabi-addr2line
का उपयोग करना और एक डाउनलोड FRG83G रॉम मैं एक छोटे से आगे हो गया है:
यह अलार्म, dlmalloc_trim
और libc.so में realloc
को इंगित करता है, को हटाने के लिए ligstdc में ++। इसलिए और libskia.so
में SI8_D16_filter_DXDY
, drawBitmap
, clipQuad
को अब मज़े की बात है, क्या इस जानकारी के साथ क्या करना है .. मैं कल जारी रखेंगे आता है, यह 0530 यहाँ है ..
edit3:
मैं एक कदम आगे है, लेकिन फिर से अटक, libskia.so में कार्य करने के लिए डंप बिंदु में पीसी मूल्यों, मैंने पाया रहा है कि एक ही समय में एक से अधिक थ्रेड में एक पेंट वस्तु का उपयोग कर पैदा कर सकता है यह समस्या, मैं ऐसा नहीं करता लेकिन मैंने BitmapFactory.Options
का पुन: उपयोग किया, उम्मीद कर रही थी कि यह समस्या थी, मैंने उस भाग को हटा दिया, अभी भी क्रैश हो रहा है ... डंप पॉइंट , SkTriColorShader::shadeSpan
और SkDraw::drawBitmap
पर। आखिरी वाला बिटमैप समस्याओं को इंगित करने के लिए सबसे स्पष्ट है .. लेकिन यह BitmapFactory.Options
या पेंट ऑब्जेक्ट्स नहीं है ..
अच्छा! वास्तव में मुझे जो चाहिए, केवल समस्या है "<साझा साझा पुस्तकालयों के लिए पथ>", मेरे पास फोन तक पहुंच नहीं है, क्या ये पुस्तकालय प्रत्येक एंड्रॉइड रिलीज के लिए समान हैं? इसलिए यदि समस्या एंड्रॉइड 2.2 पर होती है, तो क्या मैं कोई एंड्रॉइड 2.2 फोन ले सकता हूं और उससे साझा पुस्तकालय प्राप्त कर सकता हूं? – Danny