Android Unity应用程序中的错误信号11(SIGSEGV),代码2

Android Unity应用程序中的错误信号11(SIGSEGV),代码2,android,unity3d,segmentation-fault,Android,Unity3d,Segmentation Fault,我正在Unity 2018.1.0f2中开发Android和Android游戏。应用程序的某些版本会导致崩溃。日志包含以下内容: 05-20 18:52:17.993: A/libc(26270): Fatal signal 11 (SIGSEGV), code 2, fault addr 0xef97cffc in tid 26284 (UnityMain) 05-20 18:52:17.993: A/libc(26270): [ 05-20 18:52:17.993 3095: 3095

我正在Unity 2018.1.0f2中开发Android和Android游戏。应用程序的某些版本会导致崩溃。日志包含以下内容:

05-20 18:52:17.993: A/libc(26270): Fatal signal 11 (SIGSEGV), code 2, fault addr 0xef97cffc in tid 26284 (UnityMain)
05-20 18:52:17.993: A/libc(26270): [ 05-20 18:52:17.993  3095: 3095 W/         ]
05-20 18:52:17.993: A/libc(26270): debuggerd: handling request: pid=26270 uid=10367 gid=10367 tid=26284
05-20 18:52:18.094: A/DEBUG(26286): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-20 18:52:18.094: A/DEBUG(26286): Build fingerprint: 'samsung/heroltexx/herolte:7.0/NRD90M/G930FXXS2DRDI:user/release-keys'
05-20 18:52:18.094: A/DEBUG(26286): Revision: '8'
05-20 18:52:18.094: A/DEBUG(26286): ABI: 'arm'
05-20 18:52:18.095: A/DEBUG(26286): pid: 26270, tid: 26284, name: UnityMain  >>> de.zoomapp.zoom <<<
05-20 18:52:18.095: A/DEBUG(26286): signal 11 (SIGSEGV), code 2 (SEGV_ACCERR), fault addr 0xef97cffc
05-20 18:52:18.095: A/DEBUG(26286):     r0 e9c93908  r1 f0f805c0  r2 e42c70e0  r3 00000008
05-20 18:52:18.095: A/DEBUG(26286):     r4 00000000  r5 e42c70e0  r6 00000010  r7 00000008
05-20 18:52:18.095: A/DEBUG(26286):     r8 e42c7000  r9 e9c93908  sl f0f805c0  fp 00000000
05-20 18:52:18.095: A/DEBUG(26286):     ip f1200948  sp ef97d020  lr f11e6bc1  pc f11cbf00  cpsr 60070030
05-20 18:52:18.098: A/DEBUG(26286): backtrace:
05-20 18:52:18.098: A/DEBUG(26286):     #00 pc 00053f00  /system/lib/libc.so (arena_purge_to_limit+1151)
05-20 18:52:18.098: A/DEBUG(26286):     #01 pc 00064095  /system/lib/libc.so (imemalign+428)
05-20 18:52:18.098: A/DEBUG(26286):     #02 pc 0000002f  <unknown>
05-20 18:52:19.028: E/audit(4563): type=1701 audit(1526835139.011:7135): auid=4294967295 uid=10367 gid=10367 ses=4294967295 subj=u:r:untrusted_app:s0:c512,c768 pid=26284 comm="UnityMain" exe="/system/bin/app_process32" sig=11
05-20 18:52:19.054: E/lowmemorykiller(3180): Error writing /proc/26270/oom_score_adj; errno=22
05-20 18:52:19.059: E/InputDispatcher(4902): channel ~ Channel is unrecoverably broken and will be disposed!
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
05-20 18:52:21.967: E/OpenGLRenderer(4902): Error:glDeleteShader::<shader> is not a value generated by OpenGL
05-20 18:52:17.993:A/libc(26270):致命信号11(SIGSEGV),代码2,故障地址0xef97cffc在tid 26284(UnityMain)中
05-20 18:52:17.993:A/libc(26270):[05-20 18:52:17.993 3095:3095 W/]
05-20 18:52:17.993:A/libc(26270):debuggerd:处理请求:pid=26270 uid=10367 gid=10367 tid=26284
05-20 18:52:18.094:A/调试(26286):*********************************************************************
05-20 18:52:18.094:A/DEBUG(26286):构建指纹:“三星/heroltexx/herolte:7.0/NRD90M/G930FXXS2DRDI:user/release key”
05-20 18:52:18.094:A/DEBUG(26286):修订版:“8”
05-20 18:52:18.094:A/DEBUG(26286):ABI:'arm'

05-20 18:52:18.095:A/DEBUG(26286):pid:26270,tid:26284,name:UnityMain>>de.zoomapp.zoommalloc
realloc
free
memalign
内部的任何崩溃都是堆损坏的99.99%(这是堆分配的缓冲区溢出、释放未分配内存、释放内存两次等的结果。)

我并不是每次都遇到这个问题,只是在一些版本中

是的:这些都是堆损坏问题的特征

我不知道我的代码或场景如何导致这个错误

不幸的是,如果没有工具支持,堆损坏错误通常很难调试

在Linux和MacOSX上,你可以使用valgrind或(更好的)地址消毒剂。地址消毒剂也可以在Android上使用