Zygote之后的dvm堆源启动

时间:2013-06-25 08:47:58

标签: android-ndk

运行我的应用时,偶尔会收到"Fatal signal 11 (SIGSEGV) at 0x00000000 (code=1)"。在相关日志上使用ndk-stack,它会提供以下输出:

崩溃转储:构建指纹:

'samsung/espresso10wifibby/espresso10wifi:4.0.4/IMM76D/P5113UEBLH3:user/release-keys'
pid: 32589, tid: 32592  >>> packagename <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
Stack frame #00  pc 0007c108  /system/lib/libdvm.so: Unable to open symbol file F:/project-path/obj/local/armeabi-v7a/libdvm.so. Error (3): No such process

doin addr2line on 7c108 in libdvm.so我得到:

dvmHeapSourceStartupAfterZygote()
??:0
如果在zygote模式下创建了Heap Source,

dvmHeapSourceStartupAfterZygote()基本上会为后合子分配创建一个新堆。

现在我知道libdvm.so不是问题所在。但它应该在我的代码中的某个地方。我无法分享我的代码。因此,如果我可以获得一些关于我的代码中需要调查以解决此问题的指示,那就太棒了。

谢谢。

这是整个致命信号崩溃转储:

06-26 12:12:20.546: I/DEBUG(97): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
06-26 12:12:20.546: I/DEBUG(97): Build fingerprint: 'samsung/espresso10wifibby/espresso10wifi:4.0.4/IMM76D/P5113UEBLH3:user/release-keys'
06-26 12:12:20.546: I/DEBUG(97): pid: 26946, tid: 26950  >>> package-name <<<
06-26 12:12:20.546: I/DEBUG(97): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000000
06-26 12:12:20.546: I/DEBUG(97):  r0 ffffffff  r1 10100000  r2 00000004  r3 0083d580
06-26 12:12:20.546: I/DEBUG(97):  r4 00000000  r5 10100000  r6 4007f4f4  r7 00000000
06-26 12:12:20.546: I/DEBUG(97):  r8 100ffe98  r9 4007f4f4  10 409569d8  fp 409180e1
06-26 12:12:20.546: I/DEBUG(97):  ip 4005d979  sp 100ffe58  lr 4005d971  pc 40918108  cpsr 00000030
06-26 12:12:20.546: I/DEBUG(97):  d0  6573756170202c4b  d1  0000111100a44531
06-26 12:12:20.546: I/DEBUG(97):  d2  0000000010000034  d3  0008104100000036
06-26 12:12:20.546: I/DEBUG(97):  d4  0000000410000000  d5  0000104000102000
06-26 12:12:20.546: I/DEBUG(97):  d6  00b31fe000000000  d7  0000005b4e805607
06-26 12:12:20.546: I/DEBUG(97):  d8  0000000000000000  d9  0000000000000000
06-26 12:12:20.546: I/DEBUG(97):  d10 0000000000000000  d11 0000000000000000
06-26 12:12:20.546: I/DEBUG(97):  d12 0000000000000000  d13 0000000000000000
06-26 12:12:20.546: I/DEBUG(97):  d14 0000000000000000  d15 0000000000000000
06-26 12:12:20.546: I/DEBUG(97):  d16 0000000000000000  d17 3ff0000000000000
06-26 12:12:20.546: I/DEBUG(97):  d18 4146605000000000  d19 bfb1be5a93a83e1d
06-26 12:12:20.546: I/DEBUG(97):  d20 3f1155e54e7e8408  d21 bebbbc6c1a570a20
06-26 12:12:20.546: I/DEBUG(97):  d22 3ff0000000000000  d23 3fede16b9c24a98f
06-26 12:12:20.546: I/DEBUG(97):  d24 3e66376972bea4d0  d25 3fc39a09d078c69f
06-26 12:12:20.546: I/DEBUG(97):  d26 0000000000000000  d27 0000000000000000
06-26 12:12:20.546: I/DEBUG(97):  d28 0000000000000000  d29 0000000000000000
06-26 12:12:20.546: I/DEBUG(97):  d30 0000000000000000  d31 0000000000000000
06-26 12:12:20.546: I/DEBUG(97):  scr 80000012
06-26 12:12:21.078: I/DEBUG(97):          #00  pc 0007c108  /system/lib/libdvm.so
06-26 12:12:21.078: I/DEBUG(97):          #01  lr 4005d971  /system/lib/libc.so
06-26 12:12:21.078: I/DEBUG(97): code around pc:
06-26 12:12:21.078: I/DEBUG(97): 409180e8 657ef421 f025321f f422051f f020607e  !.~e.2%...".~` .
06-26 12:12:21.078: I/DEBUG(97): 409180f8 42a8001f 1a2dd207 46292204 e982f7a2  ...B..-..")F....
06-26 12:12:21.078: I/DEBUG(97): 40918108 195d6823 bd706025 4ff0e92d bf944290  #h].%`p.-..O.B..
06-26 12:12:21.078: I/DEBUG(97): 40918118 0800f04f 0801f04f bf88428a 0801f048  O...O....B..H...
06-26 12:12:21.078: I/DEBUG(97): 40918128 4683b085 4691468a 0f00f1b8 4963d00c  ...F.F.F......cI
06-26 12:12:21.078: I/DEBUG(97): code around lr:
06-26 12:12:21.078: I/DEBUG(97): 4005d950 f240b507 9300736c 33fff04f 466b9301  ..@.ls..O..3..kF
06-26 12:12:21.078: I/DEBUG(97): 4005d960 fd80f7ff bf00bd0e 4604b510 fc78f7ec  ...........F..x.
06-26 12:12:21.078: I/DEBUG(97): 4005d970 f04f6004 bd1030ff 0ffff110 db02b510  .`O..0..........
06-26 12:12:21.078: I/DEBUG(97): 4005d980 f7ff4240 bd10fff1 48214603 4478b5f0  @B.......F!H..xD
06-26 12:12:21.078: I/DEBUG(97): 4005d990 b0976800 68022150 4620ac01 92154e1d  .h..P!.h.. F.N..
06-26 12:12:21.078: I/DEBUG(97): stack:
06-26 12:12:21.078: I/DEBUG(97):     100ffe18  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe1c  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe20  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe24  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe28  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe2c  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe30  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe34  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe38  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe3c  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe40  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe44  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe48  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe4c  4005d987  /system/lib/libc.so
06-26 12:12:21.078: I/DEBUG(97):     100ffe50  df0027ad  
06-26 12:12:21.078: I/DEBUG(97):     100ffe54  00000000  
06-26 12:12:21.078: I/DEBUG(97): #00 100ffe58  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe5c  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe60  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe64  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe68  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe6c  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe70  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe74  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe78  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe7c  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe80  00000000  
06-26 12:12:21.078: I/DEBUG(97):     100ffe84  00000000  
06-26 12:12:21.085: I/DEBUG(97):     100ffe88  00000000  
06-26 12:12:21.085: I/DEBUG(97):     100ffe8c  00000000  
06-26 12:12:21.085: I/DEBUG(97):     100ffe90  00000000  
06-26 12:12:21.085: I/DEBUG(97):     100ffe94  00000000  
06-26 12:12:21.085: I/DEBUG(97):     100ffe98  00000000  
06-26 12:12:21.085: I/DEBUG(97):     100ffe9c  00000000

1 个答案:

答案 0 :(得分:0)

我设法解决了这个细分问题。这是因为malloc没有被分配正确的字节数。

相关问题