大家好,我现在遇到一个andorid crash的问题。
主要提示我的com.android.systemui 进程挂了信息提示如下:
pid: 308, tid: 311  >>> com.android.systemui <<<
signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 00000020
tls: 44564f00 r0 00000000  r1 00000000  r2 40012328  r3 400121e8
 r4 00000302  r5 40012228  r6 40042248  r7 aca9759c
 r8 fffffe84  r9 80000000  10 400121e8  fp 40042300
 ip aca9ccd8  sp 44564d78  lr aca30600  pc aca2f94c  cpsr 80000010
 d0  0000000000836832  d1  4046b9704046b800
 d2  4046bde04042d400  d3  403e02a8403e0100
 d4  403ac418403ac028  d5  404769f0403ac5d8
 d6  40464e8840476ad0  d7  403c3e88404653c8
 d8  0000000000000000  d9  0000000000000000
 d10 0000000000000000  d11 0000000000000000
 d12 0000000000000000  d13 0000000000000000
 d14 0000000000000000  d15 0000000000000000
 d16 0000000000000000  d17 3ff0000000000000
 d18 4d4d4d4d4d4d4d4d  d19 4d4d4d4d4d4d4d4d
 d20 4008000000000000  d21 0000000000000000
 d22 000000000000004d  d23 3fcc7288e957b53b
 d24 3fc74721cad6b0ed  d25 3fc39a09d078c69f
 d26 0000000000000000  d27 0000000000000000
 d28 0000000000000000  d29 0000000000000000
 d30 0000000000000000  d31 0000000000000000
 scr 80000012         #00  pc 0002f94c  /system/lib/libdvm.so
         #01  pc 000305fc  /system/lib/libdvm.so
         #02  pc 0001a640  /system/lib/libdvm.so
         #03  pc 00066054  /system/lib/libdvm.so
         #04  pc 0004aa7a  /system/lib/libdvm.so
         #05  pc 00011994  /system/lib/libc.so
         #06  pc 00011560  /system/lib/libc.so
code around pc:
aca2f92c 0a000001 e1a01006 eb0130c2 e797c008 
aca2f93c e5961000 e59c20ac e1510002 0a0000b5 
aca2f94c e5912020 e3120101 0a000055 e3510000 
aca2f95c e1a03001 0a000021 e5950010 e1510000 
aca2f96c 3a00001e e5953000 e593c00c e5930010 code around lr:
aca305e0 e58de004 e16f2f17 e59d3004 e585b014 
aca305f0 e1a01005 e1c77239 e0830182 ebfffcc0 
aca30600 e3570000 1afffff6 e598c010 e598100c 
aca30610 e061000c e1a02420 eaffffdb 00067048 
aca30620 fffffe84 e1a03001 e59f104c e92d4030 stack:
    44564d38  2f498821  
    44564d3c  c87f82f8  
...我是这样分析的:
1 pid: 308, tid: 311 PID和TID不同,说明是在子进程中出现问题的。
2 反汇编.so的 PC寄存器的地址
  得出的是这么一个调用流程
  0 dvmHeapMarkRootSet
  1 dvmHeapScanMaredObjects
  2 dvmCollectGarbageInternal
  3 dvmHeapSourceStartupAfterZygote
  4 dvmDetachCurrentThread
  5 __thread_entry
  6 pthread_create流程是从下往上的 5和6是 创建个线程,4对应的应该是JNI的env->DetachCurrentThread,3-0是垃圾回收流程,看最后个函数是dvmHeapMarkRootSet负责标记heap中的没有任何引用连接的root对象的时候,挂了,不清楚 有什么情况 会导致 android系统在垃圾回收的时候会crash掉。 希望知道的大哥帮忙看下。谢谢!  

解决方案 »

  1.   

    有android tombstone这方面的专家吗?
      

  2.   

    #00  pc 0000e0e0  /system/lib/libc.so
    I/DEBUG   (  832):          #01  pc 00061798  /system/lib/libstagefright.so (_ZN7android12CameraSource28isCameraColorFormatSupportedERKNS_16CameraParametersE)
    I/DEBUG   (  832):          #02  pc 00061bec  /system/lib/libstagefright.so (_ZN7android12CameraSource20initWithCameraAccessERKNS_2spINS_7ICameraEEERKNS1_INS_21ICameraRecordingProxyEEEiNS_4SizeEib)
    I/DEBUG   (  832):          #03  pc 00061dae  /system/lib/libstagefright.so (_ZN7android12CameraSource4initERKNS_2spINS_7ICameraEEERKNS1_INS_21ICameraRecordingProxyEEEiNS_4SizeEib)
      

  3.   

    E/videocamera( 1556): MediaRecorder error. what=100. extra=0
    E/Camera  ( 1556): Error 100
    E/CameraErrorCallback( 1556): Got camera error callback. error=100
    D/AndroidRuntime( 1556): Shutting down VM
    W/dalvikvm( 1556): threadid=1: thread exiting with uncaught exception (group=0x409991f8)
    E/AndroidRuntime( 1556): FATAL EXCEPTION: main
    E/AndroidRuntime( 1556): java.lang.RuntimeException: Media server died.
    E/AndroidRuntime( 1556):  at com.android.camera.CameraErrorCallback.onError(CameraErrorCallback.java:31)
    E/AndroidRuntime( 1556):  at android.hardware.Camera$EventHandler.handleMessage(Camera.java:738)
    E/AndroidRuntime( 1556):  at android.os.Handler.dispatchMessage(Handler.java:99)
    E/AndroidRuntime( 1556):  at android.os.Looper.loop(Looper.java:137)
    E/AndroidRuntime( 1556):  at android.app.ActivityThread.main(ActivityThread.java:4340)
    这个解决的方法和思路一样,都是从下往上找.最顶上为实际出错位置.