3

Is there a good way to collect crash dump for crash occurred in native code of an android application and then symbolise that crash dump on desktop machine.

Tried integrating google breakpad and was successful to collect the crash dump. Then tried symbolising the crash stack trace but it was not so useful. There is no filname and line number information available in symbolised crash stack.

Symbolised partial output looks like :

Operating system: Android
                  0.0.0 Linux 3.4.5-923538 #1 SMP PREEMPT Wed Mar 5 16:20:36 KST 2014 armv7l
CPU: arm
     ARMv7 ARM part(0x4100c070) features: swp,half,thumb,fastmult,vfpv2,edsp,neon,vfpv3,tls,vfpv4,idiva,idivt
     4 CPUs

Crash reason:  SIGSEGV
Crash address: 0x0

Thread 0 (crashed)
 0  libctest.so + 0x16dc
     r0 = 0x417bba60    r1 = 0x65600019    r2 = 0x00000001    r3 = 0x00000000
     r4 = 0x6db6bc18    r5 = 0x417bbfd8    r6 = 0x00000000    r7 = 0x6d753cd4
     r8 = 0xbee580f8    r9 = 0x6d753ccc   r10 = 0x417bbfe8   r12 = 0x738c76d9
     fp = 0xbee5810c    sp = 0xbee580f8    lr = 0x417de850    pc = 0x738c76dc
    Found by: given as instruction pointer in context
 1  dalvik-heap (deleted) + 0x134346
     sp = 0xbee58108    pc = 0x42ba5348
    Found by: stack scanning
 2  libdvm.so + 0x4f28d
     sp = 0xbee58110    pc = 0x4180f28f
    Found by: stack scanning
 3  data@app@com.example.ctest-3.apk@classes.dex + 0x9a3d1
     sp = 0xbee58118    pc = 0x778443d3
    Found by: stack scanning
 4  libctest.so + 0x16d7
     sp = 0xbee5811c    pc = 0x738c76d9
    Found by: stack scanning
 5  dalvik-mark-stack (deleted) + 0x2d61017
     sp = 0xbee5812c    pc = 0x65600019
    Found by: stack scanning
 6  core.odex + 0x7b6c8
     sp = 0xbee58134    pc = 0x6e7d96ca

Is there something which is missing?

Thomas Weller
  • 55,411
  • 20
  • 125
  • 222
AndRSoid
  • 1,777
  • 2
  • 13
  • 25
  • Is libctest.so yours? If so, objdump it and figure out what is going on at 0x16dc within. It appears to be experiencing a null pointer dereference or is for some other reason trying to access memory address 0. – Chris Stratton Jul 28 '14 at 12:18

1 Answers1

1

Did you dump symbols for libctest.so? The Linux Starter Guide on the Breakpad wiki has information on how to do this. If you don't provide symbols for minidump_stackwalk to use then it can't give you a usable stack.

Ted Mielczarek
  • 3,919
  • 26
  • 32