1. 程式人生 > >Fatal signal 11 (SIGSEGV), code 1, fault addr 0xc91303b0 in tid 3587 (RenderThread)

Fatal signal 11 (SIGSEGV), code 1, fault addr 0xc91303b0 in tid 3587 (RenderThread)

01-16 15:47:13.985 3543-3587/com.face.imageclass A/libc: Fatal signal 11 (SIGSEGV), code 1, fault addr 0xc91303b0 in tid 3587 (RenderThread)
                              [ 01-16 15:47:13.986   396:  396 W/         ]
                              debuggerd: handling request: pid=3543 uid=10255 gid=10255 tid=3587
01-16 15:47:14.057 4537-4537/? A/DEBUG: *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
01-16 15:47:14.057 4537-4537/? A/DEBUG: Build fingerprint: 'HUAWEI/NXT-DL00/HWNXT:7.0/HUAWEINXT-DL00/C17B592:user/release-keys'
01-16 15:47:14.057 4537-4537/? A/DEBUG: Revision: '0'
01-16 15:47:14.057 4537-4537/? A/DEBUG: ABI: 'arm'
01-16 15:47:14.057 4537-4537/? A/DEBUG: pid: 3543, tid: 3587, name: RenderThread  >>> com.face.imageclass <<<
01-16 15:47:14.057 4537-4537/? A/DEBUG: signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0xc91303b0
01-16 15:47:14.057 4537-4537/? A/DEBUG:     r0 dc6d535c  r1 0000000e  r2 b4f79f60  r3 c91303b0
01-16 15:47:14.057 4537-4537/? A/DEBUG:     r4 00000002  r5 dc6d535c  r6 0000000e  r7 0000004d
01-16 15:47:14.057 4537-4537/? A/DEBUG:     r8 b3eadac8  r9 00000000  sl e4703040  fp 012bbc40
01-16 15:47:14.057 4537-4537/? A/DEBUG:     ip ebb30a20  sp b4f79f4c  lr ebb30a58  pc ecb8cd16  cpsr a00f0030
01-16 15:47:14.062 4537-4537/? A/DEBUG: backtrace:
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #00 pc 00045d16  /system/lib/libc.so (__findenv+33)
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #01 pc 00045d81  /system/lib/libc.so (getenv+36)
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #02 pc 0027d718  /vendor/lib/egl/libGLES_mali.so
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #03 pc 0058bc78  /vendor/lib/egl/libGLES_mali.so
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #04 pc 0058c124  /vendor/lib/egl/libGLES_mali.so
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #05 pc 0058d37c  /vendor/lib/egl/libGLES_mali.so (eglp_swap_buffers+2388)
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #06 pc 0000d6b5  /system/lib/libEGL.so (eglSwapBuffersWithDamageKHR+448)
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #07 pc 00026f9f  /system/lib/libhwui.so
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #08 pc 00024311  /system/lib/libhwui.so
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #09 pc 00026213  /system/lib/libhwui.so
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #10 pc 000298d1  /system/lib/libhwui.so (_ZN7android10uirenderer12renderthread12RenderThread10threadLoopEv+80)
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #11 pc 0000e491  /vendor/lib/libutils.so (_ZN7android6Thread11_threadLoopEPv+144)
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #12 pc 0006c955  /system/lib/libandroid_runtime.so (_ZN7android14AndroidRuntime15javaThreadShellEPv+80)
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #13 pc 00047983  /system/lib/libc.so (_ZL15__pthread_startPv+22)
01-16 15:47:14.062 4537-4537/? A/DEBUG:     #14 pc 00019efd  /system/lib/libc.so (__start_thread+6)                                                                              
                                        [ 01-16 15:47:14.330   396:  396 W/         ]
                                        debuggerd: resuming target 3543

在進行陣列比較並且進行資料庫插入操作時,程式崩潰退出。檢視log,沒發現報異常,只有上述資訊。

剛開始搜的是“pid: 3543, tid: 3587, name: RenderThread”,沒什麼結果。倒是有一篇文章點選csdn連結,但是我程式碼裡的資料一直都是Parcelable了,所以不是這個問題。

又搜了“RenderThread”,也沒太多有用的資訊。

後來又搜了“Fatal signal 11 (SIGSEGV), code 1, fault addr 0xc91303b0 in tid 3587 (RenderThread)”,在stack overflow上發現了一個帖子

stackoverflow,看了也沒發現跟我的有啥關係。

後來想了想,是不是因為出問題的程式碼是在子執行緒裡執行的?就把子執行緒註釋掉,在主執行緒執行。結果發現問題沒再出現。這個好像是呼叫.so檔案中的c++程式碼導致記憶體洩露引起的。

另外這位寫的實在是沒看懂點選csdn連結,還禁止留言,真是日了狗了。有看懂的嗎,交流下。

後來又看到了這個帖子stackoverflow,第一個回答者也是把子執行緒改為了主執行緒,問題解決了。