doom2d.org

Главная база плоских морпехов
Текущее время: 28 мар 2025, 01:56

Часовой пояс: UTC + 3 часа




Начать новую тему Ответить на тему  [ Сообщений: 3 ] 
Автор Сообщение
СообщениеДобавлено: 19 фев 2024, 01:56 
Не в сети
Принципиально неуничтожаем
Аватара пользователя

Зарегистрирован: 18 окт 2009, 04:01
Сообщения: 7212
Откуда: Владивосток
Отлаживал новую версию своей карты Geobase путём наблюдения за игрой ботов в TDM, по 45 штук в каждой команде.
И заметил, что спустя минут 15-30 игра вылетает с вот таким вот последним прости:
Код:
[0:33:47] !!! Access violation
=====================
  $1002F075
  $1003F146
  $10068F66
  $1006919C
  $10085951
  $10083DD6
  $10082D78
  $10082F1B
  $10071831
  $1007434B
  $100878EC
  $1008E16C
  $1002412F
  $10069D0D
  $004F395D  PROCESSMESSAGE,  line 188 of g_window.pas
  $004F42CD  SDLMAIN,  line 377 of g_window.pas
  $00486566  MAIN,  line 576 of g_main.pas

Происходить это начало ещё до всех моих недавних коммитов в игру, так что я здесь точно ни при чём.
Заинтересовавшись, решил погонять игру в отладчике. И мне улыбнулась удача:
Код:
Index    Location            Line    Function

 0       :1002EE76           -       fmodex:?System_SetDebugMode@FMOD@@YG?AW4FMOD_RESULT@@I@Z+6972
 1       :1003F146           -       fmodex:?System_SetDebugMode@FMOD@@YG?AW4FMOD_RESULT@@I@Z+73228
 2       :10068F66           -       fmodex:?getMemoryUsedImpl@DSPI@FMOD@@QAG?AW4FMOD_RESULT@@PAVMemoryTracker@2@@Z+149117
 3       :1006919C           -       fmodex:?getMemoryUsedImpl@DSPI@FMOD@@QAG?AW4FMOD_RESULT@@PAVMemoryTracker@2@@Z+149683
 4       :10085951           -       fmodex:?System_GetDebugMode@FMOD@@YGIXZ+28419
 5       :10083DD6           -       fmodex:?System_GetDebugMode@FMOD@@YGIXZ+21384
 6       :10082D78           -       fmodex:?System_GetDebugMode@FMOD@@YGIXZ+17194
 7       :10082F1B           -       fmodex:?System_GetDebugMode@FMOD@@YGIXZ+17613
 8       :10071831           -       fmodex:?wakeupThread@AsyncThread@FMOD@@QAG?AW4FMOD_RESULT@@XZ+20398
 9       :1007434B           -       fmodex:?validate@ChannelI@FMOD@@SG?AW4FMOD_RESULT@@PAVChannel@2@PAPAV12@@Z+2252
10       :100878EC           -       fmodex:?getUserDataInternal@SoundI@FMOD@@QAG?AW4FMOD_RESULT@@PAPAX@Z+4369
11       :1008E16C           -       fmodex:?getUserDataInternal@SoundI@FMOD@@QAG?AW4FMOD_RESULT@@PAPAX@Z+31121
12       :1002412F           -       fmodex:?update@System@FMOD@@QAG?AW4FMOD_RESULT@@XZ+29
13       :10069D0D           -       fmodex:FMOD_System_Update+50
14       e_sound_fmod.inc    726     e_SoundUpdate
15       g_window.pas        182     ProcessMessage
16       g_window.pas        371     PerformExecution
17       g_main.pas          579     Main
18       Doom2DF.lpr         236     $main
19       :00414267           -       SYSTEM_$$_EXE_ENTRY$TENTRYINFORMATION+71
20       :00401F6D           -       _WinMainCRTStartup+45
21       :75F6343D           -       kernel32:BaseThreadInitThunk+18
22       :77CA9812           -       ntdll32:RtlInitializeExceptionChain+99
23       :77CA97E5           -       ntdll32:RtlInitializeExceptionChain+54

Номера строк соответствуют коммиту 1f4e9f21, версия FMODex - 4.30.22 (та, что ныне поставляется с игрой; CRC32-сумма DLL-библиотеки - 16299F6D).
Собирал через FPC 3.2.2 из Lazarus 3.0, однако наличие fmodex:?getUserDataInternal в списке подсказывает, что ошибка всё же где-то у нас.
Возможно, связано с вот этим вот случайным вылетом, так как он тоже произошёл в коде callback'а обёртки: viewtopic.php?f=38&t=3317#p46671

Важное примечание: всё это тестировалось на машине в условиях некоторой нехватки памяти (диспетчер задач отображал занятыми 91% из 16ти гигабайт). Может быть, это тоже повлияло. Но всё равно падать по звуку не должно даже в таком случае. на более новом ноутбуке моего товарища также вылетает аналогичным образом, а памяти у него хватает + включён файл подкачки, так что дело почти наверняка не в этом


Вложения:
dfclient-2024-02-12-23-21-26.log [34.48 КБ]
Скачиваний: 136
dfconfig.cfg [5.71 КБ]
Скачиваний: 126

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.
Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 20 мар 2024, 21:30 
Не в сети
Приколист

Зарегистрирован: 04 фев 2010, 14:42
Сообщения: 992
Неплохо бы уточнить трапнулось оно на nil dereference или invalid address или еще как?

Чёрный Думер писал(а):
наличие fmodex:?getUserDataInternal в списке подсказывает, что ошибка всё же где-то у нас
FMOD_Sound_GetUserData() используется только в Channel_Callback().
Может быть такое что бы FMOD_Channel_GetCurrentSound вернул и ОК, и sound=nil одновременно?


Вернуться к началу
 Профиль  
 
СообщениеДобавлено: 21 мар 2024, 02:19 
Не в сети
Принципиально неуничтожаем
Аватара пользователя

Зарегистрирован: 18 окт 2009, 04:01
Сообщения: 7212
Откуда: Владивосток
DeaDDooMER» Неплохо бы уточнить трапнулось оно на nil dereference или invalid address или еще как?
Я это в ближайшее время сам отлажу, т.к. есть подозрение, что проблема ненароком исправилась после этого коммита:
https://repo.or.cz/d2df-sdl.git/commitdiff/ed4faa6fb8b106ae2c7ecfa4d84807a8c118e611
После этого запускал на ночь тот же тест с ботами, и обе команды там спокойно доигрались до отрицательных фрагов.

UPD: Пока что просто отметил как "В работе".

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.


Вернуться к началу
 Профиль  
 
Показать сообщения за:  Поле сортировки  
Начать новую тему Ответить на тему  [ Сообщений: 3 ] 

Часовой пояс: UTC + 3 часа


Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 0


Вы не можете начинать темы
Вы не можете отвечать на сообщения
Вы не можете редактировать свои сообщения
Вы не можете удалять свои сообщения
Вы не можете добавлять вложения

Найти:
Перейти:  
doom2d.org, since 2007