Из журнала после CTD ...
W 52740355833 bool __cdecl OpenApoc :: Vehicle :: popFinishedMissions (class OpenApoc :: GameState &): Нет следующей миссии транспортного средства, работа на холостом ходу
E 52741482678 класс std :: shared_ptr
0x00000001402F9D30 PHYSFS_writeSLE16 + 0x15f400
0x000000014020208A PHYSFS_writeSLE16 + 0x6775a
0x00000001401FFD3A PHYSFS_writeSLE16 + 0x6540a
0x00000001400A784C PHYSFS_swapULE64 + 0x6600c
0x000000013FFA3D32 PHYSFS_swapULE64 + 0xfffffffffff624f2
0x000000013FF7F210 PHYSFS_swapULE64 + 0xfffffffffff3d9d0
0x000000014017E015 PHYSFS_swapULE64 + 0x13c7d5
0x0000000077A159CD BaseThreadInitThunk + 0xd
0x0000000077C4A561 RtlUserThreadStart + 0x21
Просто предупреждаю
Этот CTD обнаружил ошибки в двух играх.
Оба на "простой карте"
Оба с идентификатором транспортного средства 794 ~
Нажав «Limp Along», вы вернетесь на рабочий стол.
Эта обратная трассировка выглядит некорректно, как будто она не может найти символы отладки (поэтому она просто использует ближайший символ, который может найти, который оказывается Physfs).
Если вы используете сборки appveyor, можете ли вы извлечь пакет «отладки» поверх? Значит, файлы .pdb находятся в том же каталоге, что и .exe?
И «попытаться прихрамывать» просто не сработает для некоторых ошибок (например, этой), поскольку ошибка фактически говорит: «Мы вот-вот вылетим, и вот почему:», поэтому попытка продолжить просто вылетает :)
В качестве более долгосрочной цели можно будет сбросить текущее состояние сохранения при ошибке, это может дать нам полезную информацию о том, что не так ... Но это может привести к точно такой же проблеме (если внутренние данные не могут можно доверять, мы можем просто вылететь при попытке записать сохранение)
@JonnyH Нет проблем, постараюсь
Сейчас под завязку в юных гимнастках: D
как молод? ) надеюсь его легальный XD
@ makus82 к сожалению, в эти и последние выходные все, кроме нескольких последних, были слишком молоды. Но универсальные мероприятия, когда я их устраиваю, всегда весело - горячие женщины, все законно 💃
Что касается CTD, пожалуйста, найдите прикрепленный журнал, сохранения и т. Д. Просто начните время, и игра вылетит ...
Я сделал, как сказал @JonnyH, и поставил отладочную установку поверх вещей, прежде чем создавать эти ...
И другой вариант того же файла сохранения ...
Снова в 0.1-117
Даже выполнение чистой установки (стереть все существующие данные apoc, кроме сохранений, снова извлечь из zip-архива)
Могу предоставить некоторые подробности.
Действия по воспроизведению:
@OverDrone
Ах, да, во всех играх, где я получаю этот CTD, я продаю свой APC Wolfhound и Stormdog, чтобы получить несколько дополнительных тысяч наличными за технику, которую я никогда не использую.
Я проведу тест в игре, когда я НЕ продаю машины, и посмотрю, возникает ли эта ошибка.
В настоящее время в любой игре продаются любые машины, в которых она разбивается ...
Хммм, только что произошел сбой в игре, где ive не продавала НИКАКИХ наземных юнитов ... Кажется удивительно похожим ...
Такая же проблема здесь .... я не могу продавать veicle и опцию отладки, идущую на рабочий стол ...
любая идея x решение?
Код экрана транзакции выглядит беспорядочно. Трудно исправить эту проблему без рефакторинга.
Все еще присутствует в версии 0.1-167 (OpenApoc-x64-v0.1-167-gf31d8b8b), что немного раздражает ... Сообщается, что ошибка смерти транспортного средства отсортирована. Интересно, почему этот баг отказывается подавляться?
Вы загрузили игру или начали новую?
Попробуйте опробовать на новой игре.
Просто запустил новую игру на новой установке, чтобы проверить. Подтверждаю, если проблема не устранена.
Хорошо, игра вылетела, по-видимому, из-за проблемы № 255, прежде чем я смогу подтвердить, что эта проблема исправлена.
Тем не менее, я смог продать БТР Stormdog и Wolfhound и еще не продал 794 CTD, но также не дожил до конца первого дня без прерывания игры :(
Пожалуйста, просмотрите последний комментарий к № 255, чтобы увидеть журнал и экраны сбоя, завершившего мою новую игру.
@redv Авария автомобиля кажется исправленной, однако проблема, похоже, распространилась и на агентов, эта ошибка все еще возникает ...
Вылетает ли он при выходе из игры?
Это происходит при выходе из игры ИЛИ при переходе на базовый экран (в случае выше был выход)
@redv К сожалению, у меня снова была ошибка Агента 45 при новой, чистой установке и новой игре OpenApoc. Произошло при выходе из игры следующим образом ...
Версия игры - последняя сборка (на момент написания 0.1-172)
Щелчок по "Limp Along" производит этот вариант ...
Когда приложение разрушает класс GameState, во-первых, уничтожает список агентов, во-вторых базы, сооружения, лаборатории и т. Д. Класс Lab содержит собственный список агентов (ученых), но классы агентов уже уничтожены. Таким образом происходит ошибка.
PR # 337 исправляет эту ошибку.
В качестве обходного пути можно удалить ученых из лаборатории перед выходом из игры.
@redv
К сожалению, вариант этой проблемы все еще появляется в версии OpenApoc-debug-x64-v0.1-169-g921de2a3
На этот раз я перемещаю агентов (пешком через трубы для людей) к инопланетному происшествию в трущобах. Я также готовлюсь к рейду на храм CoS, ошибка происходит с выбранным зданием и агентами.
Прикрепите пожалуйста последнее сохранение перед CTD.
@redv вот и все. Чтобы повторить ошибку, отправьте Валькирию в храм CoS к северо-востоку от базы и отправьте двух агентов-андроидов к месту происшествия в трущобах, которое появляется через минуту или две НА НОГАХ.
Ошибка возникает, когда Валькирия прибывает в храм CoS, и вы выбираете агентов внутри, чтобы совершить набег на здание.
Savegame - это новая игра, созданная сегодня при чистой установке OpenApoc. Игра находится в первые несколько минут игры ...
Ошибка возникает, когда игра пытается загрузить ресурсы для карты битвы. Карта содержит несколько блоков, которые выбираются случайным образом из набора. Похоже, один из них приводит к ошибке при загрузке ресурса.
Т.е. если повторить одни и те же действия несколько раз, рано или поздно карта битвы CoS загрузится успешно. Эта карта будет без плохого блока.
AGENT_35 - квантовый физик Питер Джонс.
Когда происходит ошибка загрузки карты, игра во время сбоя вызывает деструкторы. Деструктрос агентов запускается перед деструкторами лабораторий. Деструктор лаборатории пытается освободить агентов, но агенты уже пропали из памяти. Таким образом, вторая ошибка возникает в классе StateRef, который содержит агент в классе Lab.
Спасибо redv; дайте мне знать, когда у вас будет представление о том, какое решение может сработать
Что касается карт, может ли это быть связано с вопросом №284? Я заметил довольно много карт CoS, а некоторые другие, кажется, генерируют ошибки, когда предметы падают убитыми / оглушенными / паникующими юнитами.
Очередной вылет на 0.1-200, на этот раз при открытии экрана агента ... Уже продал Stormdog.
Выбор "Limp Along" делает это
Оборудование на этот раз :(
Создайте, пожалуйста, новый выпуск. Потому что это слишком глубоко в очереди вопросов.
Подтверждая, что это все еще проблема, продажа любого транспортного средства заставляет это всплывать, когда вызывается что-либо, связанное с ним.
I 417929443733 void __cdecl
anonymous-namespace ':: SDLRawBackend :: setTrack (класс std :: shared_ptr
I 422315537514 void __cdecl anonymous-namespace'::SDLRawBackend::playSample(class std::shared_ptr<class OpenApoc::Sample>,float): Placed sound 0,000,019,BFD,B86,6B0 on queue
I 422432359150 void __cdecl OpenApoc::VEquipScreen::setSelectedVehicle(class std::shared_ptr<class OpenApoc::Vehicle>): Selecting vehicle "Valkyrie Interceptor 90"
I 422432639858 void __cdecl OpenApoc::VEquipScreen::setSelectedVehicle(class std::shared_ptr<class OpenApoc::Vehicle>): Selecting vehicle "Valkyrie Interceptor 90"
I 424865493463 void __cdecl
anonymous-namespace ':: SDLRawBackend :: playSample (класс std :: shared_ptr
Я 427732686087 класс std :: shared_ptr
I 430232009610 void __cdecl anonymous-namespace'::SDLRawBackend::playSample(class std::shared_ptr<class OpenApoc::Sample>,float): Placed sound 0,000,019,BFD,B86,6B0 on queue
I 432298883338 void __cdecl
anonymous-namespace ':: SDLRawBackend :: playSample (класс std :: shared_ptr
W 432416803536 void __cdecl OpenApoc :: StateRef
E 432419555645 класс std :: shared_ptr
0x00007FF712CA8C70 PHYSFS_writeSLE16 + 0x917d0
0x00007FF712AF1F6C PHYSFS_swapULE64 + 0xef91c
0x00007FF712B5D944 PHYSFS_swapULE64 + 0x15b2f4
0x00007FF712B5FA0A PHYSFS_swapULE64 + 0x15d3ba
0x00007FF712B63967 PHYSFS_swapULE64 + 0x161317
0x00007FF712B61F0E PHYSFS_swapULE64 + 0x15f8be
0x00007FF712B56B98 PHYSFS_swapULE64 + 0x154548
0x00007FF712A79F49 PHYSFS_swapULE64 + 0x778f9
0x00007FF712A233D8 PHYSFS_swapULE64 + 0x20d88
0x00007FF7129FF6A0 PHYSFS_swapULE64 + 0xffffffffffffd050
0x00007FF712BFAE25 PHYSFS_swapULE64 + 0x1f87d5
0x00007FFF402C3034 BaseThreadInitThunk + 0x14
0x00007FFF41181431 `RtlUserThreadStart + 0x21`
Несколько дней обширного игрового тестирования, и с тех пор я не видел этой ошибки.
Заключительный выпуск.
Большое спасибо Jarskih, RedV и JonnyH
Ошибка все еще активна июль 2019 г. Восстановите сохраненную игру и продолжите. Немедленная ошибка. Закройте окно ошибки, и оно повторится.
save_Shot down UFO.zip
Эта ошибка будет сохраняться при сохранении, поэтому, если исходная причина неправильного StateRef
Сообщение об ошибке выше отображается, когда игра пытается использовать этот "сломанный" объект и понимает, что что-то не так, а не ошибку сама по себе. Сбой мог случиться некоторое время назад, просто сломанный объект еще не использовался.
Так что, если вы тестируете это с тем же сохранением и не создавали новую игру с момента исправления, это, вероятно, мало что нам скажет.
Да, предыдущие 3 сейва тоже глючат. Я могу вернуться к более ранним сохранениям, если это поможет.
Самый полезный комментарий
Эта ошибка будет сохраняться при сохранении, поэтому, если исходная причина неправильного StateRefуже произошло, и вы сохраняете, он встроит эту «плохую» в сохранение, поэтому неудивительно, что перезагрузка «сломанного» сохранения вызовет ту же ошибку.
Сообщение об ошибке выше отображается, когда игра пытается использовать этот "сломанный" объект и понимает, что что-то не так, а не ошибку сама по себе. Сбой мог случиться некоторое время назад, просто сломанный объект еще не использовался.
Так что, если вы тестируете это с тем же сохранением и не создавали новую игру с момента исправления, это, вероятно, мало что нам скажет.