java - Android 段错误

标签 java android segmentation-fault

我们正在开发一个 Android 项目,我们的平台是基于 ARM 的。 我们发现dalvik中发生应用程序崩溃的概率非常低。 下面是崩溃日志消息。 我认为段错误是由内存损坏引起的,这是此问题的根本原因,但我不知道如何调试此问题。

非常感谢任何提示。

问候,

06-20 04:42:47.986 I/DEBUG   (  803): <strong>* <em></em></strong><em> *</em>* <strong>* <em></em></strong><em> *</em>* <strong>* <em></em></strong><em> *</em>* <strong>* <em></em></strong><em> *</em>* <strong>* <em></em></strong><em> *</em>* <em>*</em>
06-20 04:42:47.986 I/DEBUG   (  803): Build fingerprint: 'TI/omap3evm/omap3evm:2.3/GRH55/eng.root.20130321.220023:userdebug/test-keys'
06-20 04:42:47.986 I/DEBUG   (  803): pid: 1229, tid: 1232  >>> com.samsung.xoa.ui.local.android.app.initialsetup <<<
06-20 04:42:47.986 I/DEBUG   (  803): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0063008f
06-20 04:42:47.986 I/DEBUG   (  803):  r0 00000000  r1 0063006f  r2 40009328  r3 400091e8
06-20 04:42:47.986 I/DEBUG   (  803):  r4 47095000  r5 40009228  r6 401a06d0  r7 81da5608
06-20 04:42:47.986 I/DEBUG   (  803):  r8 fffffe7c  r9 81da5608  10 00002000  fp 44dafd78
06-20 04:42:47.986 I/DEBUG   (  803):  ip 81daad38  sp 44dafd40  lr 81d36348  pc 81d35bd4  cpsr 80000010
06-20 04:42:47.986 I/DEBUG   (  803):  d0  403b0ad0403e6019  d1  40408e704040961a
06-20 04:42:47.986 I/DEBUG   (  803):  d2  4042e4384042eb1b  d3  4042d4d04042dcff
06-20 04:42:47.986 I/DEBUG   (  803):  d4  40258b1840260d48  d5  402393f840252c30
06-20 04:42:47.986 I/DEBUG   (  803):  d6  401f2d8840223d98  d7  40131a50401a8398
06-20 04:42:47.986 I/DEBUG   (  803):  d8  00000011e7adbd96  d9  0000000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  d10 0000000000000000  d11 0000000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  d12 0000000000000000  d13 0000000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  d14 0000000000000000  d15 0000000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  d16 0000000000000000  d17 3ff0000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  d18 0000000000000000  d19 0000000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  d20 0000000000000000  d21 0000000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  d22 0000000000000000  d23 0000000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  d24 0000000000000000  d25 0000000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  d26 0000000000000000  d27 0000000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  d28 0000000000000000  d29 0000000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  d30 0000000000000000  d31 0000000000000000
06-20 04:42:47.986 I/DEBUG   (  803):  scr 80000012
06-20 04:42:47.986 I/DEBUG   (  803): 
06-20 04:42:48.010 I/DEBUG   (  803):          #00  pc 00035bd4  /system/lib/libdvm.so
06-20 04:42:48.010 I/DEBUG   (  803):          #01  pc 00036344  /system/lib/libdvm.so
06-20 04:42:48.010 I/DEBUG   (  803):          #02  pc 00020338  /system/lib/libdvm.so
06-20 04:42:48.010 I/DEBUG   (  803): 
06-20 04:42:48.010 I/DEBUG   (  803): code around pc:
06-20 04:42:48.010 I/DEBUG   (  803): 81d35bb4 0a000001 e1a01006 eb014609 e797c008 
06-20 04:42:48.010 I/DEBUG   (  803): 81d35bc4 e5961000 e59c20ac e1510002 0a0000b5 
06-20 04:42:48.010 I/DEBUG   (  803): 81d35bd4 e5912020 e3120101 0a000055 e3510000 
06-20 04:42:48.010 I/DEBUG   (  803): 81d35be4 e1a03001 0a000021 e5950010 e1510000 
06-20 04:42:48.010 I/DEBUG   (  803): 81d35bf4 3a00001e e5953000 e593c00c e5930010 
06-20 04:42:48.010 I/DEBUG   (  803): 
06-20 04:42:48.010 I/DEBUG   (  803): code around lr:
06-20 04:42:48.010 I/DEBUG   (  803): 81d36328 e590404c e5812054 e1540003 0a000006 
06-20 04:42:48.010 I/DEBUG   (  803): 81d36338 e4930004 e1a01007 e5873008 ebfffe10 
06-20 04:42:48.010 I/DEBUG   (  803): 81d36348 e5973008 e1540003 1afffff8 e3a00000 
06-20 04:42:48.010 I/DEBUG   (  803): 81d36358 eb0143fe e28dd02c e8bd8ff0 e1a0000b 
06-20 04:42:48.010 I/DEBUG   (  803): 81d36368 eb01442e eafffffa e59fe048 e3a00006 
06-20 04:42:48.010 I/DEBUG   (  803): 
06-20 04:42:48.010 I/DEBUG   (  803): stack:
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd00  400091f0  /dev/ashmem/dalvik-heap (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd04  01040004<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd08  40009228  /dev/ashmem/dalvik-heap (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd0c  00000000<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd10  00000001<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd14  fffffe7c<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd18  00264fa0  [heap]
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd1c  47095000  /dev/ashmem/CursorWindow (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd20  40009228  /dev/ashmem/dalvik-heap (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd24  403e8b38  /dev/ashmem/dalvik-heap (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd28  81da5608  /system/lib/libdvm.so
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd2c  fffffe7c<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd30  81da5608  /system/lib/libdvm.so
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd34  00002000<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd38  df002777<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd3c  e3a070ad<br/>
06-20 04:42:48.010 I/DEBUG   (  803): #00 44dafd40  47095000  /dev/ashmem/CursorWindow (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd44  00253644  [heap]
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd48  00000001<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd4c  40009228  /dev/ashmem/dalvik-heap (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd50  fffffe7c<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd54  81da5608  /system/lib/libdvm.so
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd58  00002000<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd5c  81d36348  /system/lib/libdvm.so
06-20 04:42:48.010 I/DEBUG   (  803): #01 44dafd60  000002bb<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd64  81d9ef60  /system/lib/libdvm.so
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd68  81d9f02c  /system/lib/libdvm.so
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd6c  81da5608  /system/lib/libdvm.so
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd70  400091e8  /dev/ashmem/dalvik-heap (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd74  fffffe7c<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd78  00253644  [heap]
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd7c  00252b58  [heap]
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd80  00000400<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd84  7fffffff<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd88  400091e8  /dev/ashmem/dalvik-heap (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd8c  400091e8  /dev/ashmem/dalvik-heap (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd90  81da5608  /system/lib/libdvm.so
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd94  00000001<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd98  fffffe84<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafd9c  fffffe7c<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafda0  00002710<br/>
06-20 04:42:48.010 I/DEBUG   (  803):     44dafda4  400091f4  /dev/ashmem/dalvik-heap (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafda8  400091f8  /dev/ashmem/dalvik-heap (deleted)
06-20 04:42:48.010 I/DEBUG   (  803):     44dafdac 81d2033c  /system/lib/libdvm.so

最佳答案

从日志中我可以看到您正在使用 Android 2.3 (Gingerbread)。实际上这个版本在垃圾收集过程中存在一个错误。这就是为什么我认为存在 android 原生库崩溃的原因。

请在此处查看类似问题 https://groups.google.com/forum/#!topic/android-ndk/k6rWjsrs_z0

解决方法 -(取自上面的链接): 解决方法是自动存储对象数组元素。在里面 Bionic C 库,bcopy 例程是单独实现的 memmove,并且非常偶然地以原子方式移动字大小的值。 此提交将 System.arraycopy 切换为使用 bcopy 而不是 内存移动。

关于java - Android 段错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/17209146/

相关文章:

java - 套接字异常 : sendto failed: EBADF (Bad file descriptor)

c - C 中的函数指针及其行为

c - 打印答案时出现段错误

java - 坐标序列的线条绘制错误

java 8流从类型A的集合创建类型B的集合

java - LatLng GPS 位置的 NullPointerException

java - 尝试注册 XMPP

java - 为什么java中的段错误是致命的?

java - 如何在 Wicket 口表中打印对象列表?

java - 在有效日志级别检查的上下文中,Log4j2 中的替换参数和 Java lambda 表达式有什么区别?