Сигнал 11 Unity Android (SIGSEGV), код 1 (SEGV_MAPERR), адрес ошибки 0x0 - PullRequest
0 голосов
/ 16 мая 2018

Я создаю Android-приложение с Unity 2018.1.0f2 и получаю какую-то ошибку сегментации при запуске.Точная ошибка следующая:

05-16 20:54:11.834: E/SamsungIME(9413): <AbstractKeyboardView> - onDraw() called
05-16 20:54:12.142: E/ViewRootImpl(17850): sendUserActionEvent() mView == null
05-16 20:54:12.146: E/SKBD KeyboardInfoUtils(9413): getInstance start
05-16 20:54:12.146: E/SKBD KeyboardInfoUtils(9413): sendSIPInformation state:6  isAbstractKeyboardView : true
05-16 20:54:12.151: E/SKBD KeyboardInfoUtils(9413): sending null keyboardInfo as SIP is closed
05-16 20:54:15.401: A/libc(17850): Fatal signal 11 (SIGSEGV), code 1, fault addr 0x0 in tid 17865 (UnityMain)
05-16 20:54:15.401: A/libc(17850): [ 05-16 20:54:15.407  3096: 3096 W/         ]
05-16 20:54:15.401: A/libc(17850): debuggerd: handling request: pid=17850 uid=10350 gid=10350 tid=17865
05-16 20:54:15.633: A/DEBUG(17987): *** *** *** *** *** *** *** *** *** *** *** *** *** *** *** ***
05-16 20:54:15.634: A/DEBUG(17987): Build fingerprint: 'samsung/heroltexx/herolte:7.0/NRD90M/G930FXXS2DRDI:user/release-keys'
05-16 20:54:15.635: A/DEBUG(17987): Revision: '8'
05-16 20:54:15.635: A/DEBUG(17987): ABI: 'arm'
05-16 20:54:15.635: A/DEBUG(17987): pid: 17850, tid: 17865, name: UnityMain  >>> de.zoomapp.zoom <<<
05-16 20:54:15.635: A/DEBUG(17987): signal 11 (SIGSEGV), code 1 (SEGV_MAPERR), fault addr 0x0
05-16 20:54:15.636: A/DEBUG(17987):     r0 00000000  r1 c7ad20b0  r2 cf9ffc24  r3 efc62308
05-16 20:54:15.637: A/DEBUG(17987):     r4 c7ad20b0  r5 c7ad20cc  r6 ffffffff  r7 00000000
05-16 20:54:15.637: A/DEBUG(17987):     r8 00000000  r9 ee67ecb4  sl ee67ebc8  fp ee67e5e8
05-16 20:54:15.637: A/DEBUG(17987):     ip c7ad20b0  sp ee67e5c8  lr cf9ffc3c  pc f2386338  cpsr a00e0030
05-16 20:54:15.651: A/DEBUG(17987): backtrace:
05-16 20:54:15.652: A/DEBUG(17987):     #00 pc 00018338  /system/lib/libc.so (strcmp+47)
05-16 20:54:15.652: A/DEBUG(17987):     #01 pc 0014bc38  /data/app/de.zoomapp.zoom-1/lib/arm/libunity.so
05-16 20:54:15.652: A/DEBUG(17987):     #02 pc 00008484  <anonymous:c7275000>
05-16 20:54:17.518: E/audit(4645): type=1701 audit(1526496857.505:4791): auid=4294967295 uid=10350 gid=10350 ses=4294967295 subj=u:r:untrusted_app:s0:c512,c768 pid=17865 comm="UnityMain" exe="/system/bin/app_process32" sig=11
05-16 20:54:17.562: E/lowmemorykiller(3180): Error writing /proc/17850/oom_score_adj; errno=22

Я стараюсь отображать каждый экран в альбомной и портретной ориентации.Когда пользователь находится на экране входа в систему и нажимает кнопку входа в систему, на сервер отправляется запрос UnityWebRequest.Если сервер отвечает положительным результатом, переходы пользовательского интерфейса открывают загрузочный экран, в фоновом режиме отправляются многочисленные запросы UnityWeb для получения дополнительной информации о значках и изображениях, которые нужно показать.Когда загрузка завершена, отображается главное меню, а на заднем плане игра уже загружена, но приостановлена.Эта игра состоит только из нескольких картинок и довольно статична, поэтому я не буду описывать ее подробно здесь.Указанный сбой происходит, если пользователь поворачивает свой телефон из книжного в альбомный режим сразу после нажатия кнопки «Войти» и во время отображения экрана загрузки.Я мог постоянно воспроизводить эту ошибку на своем Samsung Galaxy S7, но не смог сделать минимальный пример в чистом проекте.Это может быть проблема с выдачей веб-запросов, может быть?Я помещаю сообщения журнала по всему своему коду, и перед сбоем я часто видел выражение yield некоторого веб-запроса.У меня есть несколько сопрограмм, загружающих некоторые изображения в асинхронном режиме.Если я закомментирую все сопрограммы, он будет работать нормально, но я не знаю, происходит ли это из-за очень быстрой загрузки, или сопрограммы вызывают проблему.Затем я искал в интернете и обнаружил, что использовать инструмент addr2line.Это произвело для адреса 0014bc38:

operator delete[](void*, std::nothrow_t const&)

Я не могу найти точную проблему.Надеюсь, у кого-нибудь есть подсказка, как мне это искать.Спасибо, ребята.

С уважением, Майкл

1 Ответ

0 голосов
/ 16 мая 2018

SEG_MAPERR с адресом 0x0 равно разыменование нулевого указателя .

Допустимо удалить нулевой указатель (и должно быть для оператора delete []).Я подозреваю, что у вас какое-то состояние гонки.Поместите некоторые журналы, когда вы удаляете или освобождаете что-либо (хотя все GC ...)

Кроме того, проверьте официальный трекер ошибок и отправьте новую ошибку , если выне могу найти что-то подобное.Я подозреваю, что он пытается получить доступ к нулевому указателю, когда новые параметры окна отправляются в приложение.

...