doom2d.org

Главная база плоских морпехов
It is currently 20 Apr 2025, 19:18

All times are UTC + 3 hours




Post new topic Reply to topic  [ 3 posts ] 
Author Message
PostPosted: 19 Feb 2024, 01:56 
Offline
Принципиально неуничтожаем
User avatar

Joined: 18 Oct 2009, 04:01
Posts: 7215
Location: Владивосток
Отлаживал новую версию своей карты Geobase путём наблюдения за игрой ботов в TDM, по 45 штук в каждой команде.
И заметил, что спустя минут 15-30 игра вылетает с вот таким вот последним прости:
Code:
[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

Происходить это начало ещё до всех моих недавних коммитов в игру, так что я здесь точно ни при чём.
Заинтересовавшись, решил погонять игру в отладчике. И мне улыбнулась удача:
Code:
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ти гигабайт). Может быть, это тоже повлияло. Но всё равно падать по звуку не должно даже в таком случае. на более новом ноутбуке моего товарища также вылетает аналогичным образом, а памяти у него хватает + включён файл подкачки, так что дело почти наверняка не в этом


Attachments:
dfclient-2024-02-12-23-21-26.log [34.48 KiB]
Downloaded 138 times
dfconfig.cfg [5.71 KiB]
Downloaded 128 times

_________________
Чёрный Думер, Чёрный Думер
С монстрами сражается.
Чёрный Думер, Чёрный Думер
Рокетланчер плавится.
Top
 Profile  
 
PostPosted: 20 Mar 2024, 21:30 
Offline
Приколист

Joined: 04 Feb 2010, 14:42
Posts: 992
Неплохо бы уточнить трапнулось оно на nil dereference или invalid address или еще как?

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


Top
 Profile  
 
PostPosted: 21 Mar 2024, 02:19 
Offline
Принципиально неуничтожаем
User avatar

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

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

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


Top
 Profile  
 
Display posts from previous:  Sort by  
Post new topic Reply to topic  [ 3 posts ] 

All times are UTC + 3 hours


Who is online

Users browsing this forum: No registered users and 1 guest


You cannot post new topics in this forum
You cannot reply to topics in this forum
You cannot edit your posts in this forum
You cannot delete your posts in this forum
You cannot post attachments in this forum

Search for:
Jump to:  
doom2d.org, since 2007