Openapoc: Нет транспортного средства с идентификатором CTD "VEHICLE_794"

Созданный на 23 нояб. 2017  ·  33Комментарии  ·  Источник: OpenApoc/OpenApoc

Из журнала после CTD ...

W 52740355833 bool __cdecl OpenApoc :: Vehicle :: popFinishedMissions (class OpenApoc :: GameState &): Нет следующей миссии транспортного средства, работа на холостом ходу
E 52741482678 класс std :: shared_ptr__cdecl OpenApoc :: Vehicle :: get (const class OpenApoc :: GameState &, const class OpenApoc :: UString &): нет транспортного средства с идентификатором "VEHICLE_794"
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

image

image

Самый полезный комментарий

Эта ошибка будет сохраняться при сохранении, поэтому, если исходная причина неправильного StateRefуже произошло, и вы сохраняете, он встроит эту «плохую» в сохранение, поэтому неудивительно, что перезагрузка «сломанного» сохранения вызовет ту же ошибку.

Сообщение об ошибке выше отображается, когда игра пытается использовать этот "сломанный" объект и понимает, что что-то не так, а не ошибку сама по себе. Сбой мог случиться некоторое время назад, просто сломанный объект еще не использовался.

Так что, если вы тестируете это с тем же сохранением и не создавали новую игру с момента исправления, это, вероятно, мало что нам скажет.

Все 33 Комментарий

Просто предупреждаю
Этот CTD обнаружил ошибки в двух играх.
Оба на "простой карте"
Оба с идентификатором транспортного средства 794 ~
Нажав «Limp Along», вы вернетесь на рабочий стол.

Эта обратная трассировка выглядит некорректно, как будто она не может найти символы отладки (поэтому она просто использует ближайший символ, который может найти, который оказывается Physfs).

Если вы используете сборки appveyor, можете ли вы извлечь пакет «отладки» поверх? Значит, файлы .pdb находятся в том же каталоге, что и .exe?

И «попытаться прихрамывать» просто не сработает для некоторых ошибок (например, этой), поскольку ошибка фактически говорит: «Мы вот-вот вылетим, и вот почему:», поэтому попытка продолжить просто вылетает :)

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

@JonnyH Нет проблем, постараюсь

Сейчас под завязку в юных гимнастках: D

как молод? ) надеюсь его легальный XD

@ makus82 к сожалению, в эти и последние выходные все, кроме нескольких последних, были слишком молоды. Но универсальные мероприятия, когда я их устраиваю, всегда весело - горячие женщины, все законно 💃

Что касается CTD, пожалуйста, найдите прикрепленный журнал, сохранения и т. Д. Просто начните время, и игра вылетит ...

Я сделал, как сказал @JonnyH, и поставил отладочную установку поверх вещей, прежде чем создавать эти ...

openapoc_log.txt

save_Easy 1.zip

И другой вариант того же файла сохранения ...

image

openapoc_log.txt

Снова в 0.1-117
Даже выполнение чистой установки (стереть все существующие данные apoc, кроме сохранений, снова извлечь из zip-архива)

image

Могу предоставить некоторые подробности.
Действия по воспроизведению:

  1. начать игру на средней (может быть любой) сложности
  2. продам наземный (может любой) автомобиль
  3. сохранить игру
  4. загрузить игру
  5. возобновить игру

@OverDrone

Ах, да, во всех играх, где я получаю этот CTD, я продаю свой APC Wolfhound и Stormdog, чтобы получить несколько дополнительных тысяч наличными за технику, которую я никогда не использую.

Я проведу тест в игре, когда я НЕ продаю машины, и посмотрю, возникает ли эта ошибка.
В настоящее время в любой игре продаются любые машины, в которых она разбивается ...

Хммм, только что произошел сбой в игре, где ive не продавала НИКАКИХ наземных юнитов ... Кажется удивительно похожим ...

image
image
image

Такая же проблема здесь .... я не могу продавать veicle и опцию отладки, идущую на рабочий стол ...
любая идея x решение?

Код экрана транзакции выглядит беспорядочно. Трудно исправить эту проблему без рефакторинга.

Все еще присутствует в версии 0.1-167 (OpenApoc-x64-v0.1-167-gf31d8b8b), что немного раздражает ... Сообщается, что ошибка смерти транспортного средства отсортирована. Интересно, почему этот баг отказывается подавляться?

image
image
image

Вы загрузили игру или начали новую?
Попробуйте опробовать на новой игре.

Просто запустил новую игру на новой установке, чтобы проверить. Подтверждаю, если проблема не устранена.

Хорошо, игра вылетела, по-видимому, из-за проблемы № 255, прежде чем я смогу подтвердить, что эта проблема исправлена.

Тем не менее, я смог продать БТР Stormdog и Wolfhound и еще не продал 794 CTD, но также не дожил до конца первого дня без прерывания игры :(

Пожалуйста, просмотрите последний комментарий к № 255, чтобы увидеть журнал и экраны сбоя, завершившего мою новую игру.

@redv Авария автомобиля кажется исправленной, однако проблема, похоже, распространилась и на агентов, эта ошибка все еще возникает ...

image
image

Вылетает ли он при выходе из игры?

Это происходит при выходе из игры ИЛИ при переходе на базовый экран (в случае выше был выход)

@redv К сожалению, у меня снова была ошибка Агента 45 при новой, чистой установке и новой игре OpenApoc. Произошло при выходе из игры следующим образом ...

Версия игры - последняя сборка (на момент написания 0.1-172)

image
image
image

Щелчок по "Limp Along" производит этот вариант ...
image
image

Когда приложение разрушает класс GameState, во-первых, уничтожает список агентов, во-вторых базы, сооружения, лаборатории и т. Д. Класс Lab содержит собственный список агентов (ученых), но классы агентов уже уничтожены. Таким образом происходит ошибка.
PR # 337 исправляет эту ошибку.
В качестве обходного пути можно удалить ученых из лаборатории перед выходом из игры.

@redv
К сожалению, вариант этой проблемы все еще появляется в версии OpenApoc-debug-x64-v0.1-169-g921de2a3

На этот раз я перемещаю агентов (пешком через трубы для людей) к инопланетному происшествию в трущобах. Я также готовлюсь к рейду на храм CoS, ошибка происходит с выбранным зданием и агентами.

image
image
image

Прикрепите пожалуйста последнее сохранение перед CTD.

@redv вот и все. Чтобы повторить ошибку, отправьте Валькирию в храм CoS к северо-востоку от базы и отправьте двух агентов-андроидов к месту происшествия в трущобах, которое появляется через минуту или две НА НОГАХ.

Ошибка возникает, когда Валькирия прибывает в храм CoS, и вы выбираете агентов внутри, чтобы совершить набег на здание.

save_Medium Test 1.zip

Savegame - это новая игра, созданная сегодня при чистой установке OpenApoc. Игра находится в первые несколько минут игры ...

Ошибка возникает, когда игра пытается загрузить ресурсы для карты битвы. Карта содержит несколько блоков, которые выбираются случайным образом из набора. Похоже, один из них приводит к ошибке при загрузке ресурса.
Т.е. если повторить одни и те же действия несколько раз, рано или поздно карта битвы CoS загрузится успешно. Эта карта будет без плохого блока.

  1. Ошибка. Необходимо выяснить, почему игра не может загрузить некоторые блоки карты.

AGENT_35 - квантовый физик Питер Джонс.
Когда происходит ошибка загрузки карты, игра во время сбоя вызывает деструкторы. Деструктрос агентов запускается перед деструкторами лабораторий. Деструктор лаборатории пытается освободить агентов, но агенты уже пропали из памяти. Таким образом, вторая ошибка возникает в классе StateRef, который содержит агент в классе Lab.

  1. Ошибка. Я считаю, что класс StateRef - это большая архитектурная ошибка. Лучше использовать обычные C-указатели. Я думаю, что шаблон «наблюдатель» может решить большинство проблем. По крайней мере, я постараюсь найти хорошее решение.

Спасибо redv; дайте мне знать, когда у вас будет представление о том, какое решение может сработать

Что касается карт, может ли это быть связано с вопросом №284? Я заметил довольно много карт CoS, а некоторые другие, кажется, генерируют ошибки, когда предметы падают убитыми / оглушенными / паникующими юнитами.

Очередной вылет на 0.1-200, на этот раз при открытии экрана агента ... Уже продал Stormdog.
image
image
image

Выбор "Limp Along" делает это

image
image

Оборудование на этот раз :(
Создайте, пожалуйста, новый выпуск. Потому что это слишком глубоко в очереди вопросов.

Подтверждая, что это все еще проблема, продажа любого транспортного средства заставляет это всплывать, когда вызывается что-либо, связанное с ним.

I 417929443733 void __cdecl anonymous-namespace ':: SDLRawBackend :: setTrack (класс std :: shared_ptr): Установка маршрута на 0,000,019, B87,324, D20
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, float): помещен звук 0,000,019, BFD, B86,6B0 в очередь
Я 427732686087 класс std :: shared_ptr__cdecl OpenApoc :: Vehicle :: addEquipment (класс OpenApoc :: GameState &, struct glm :: tvec2, класс OpenApoc :: StateRef): Оборудован "Valkyrie Interceptor 90" с общим оборудованием "Пассажирский модуль".
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, float): помещен звук 0,000,019, BFD, B86,6B0 в очередь
W 432416803536 void __cdecl OpenApoc :: StateRef:: resolve (void) const: объект AEquipmentType имеет недопустимый префикс - ожидаемый "AEQUIPMENTTYPE_" ID "VEHICLE_794"
E 432419555645 класс std :: shared_ptr__cdecl OpenApoc :: AEquipmentType :: get (const class OpenApoc :: GameState &, const class OpenApoc :: UString &): нет типа оборудования, соответствующего идентификатору "VEHICLE_794"
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 г. Восстановите сохраненную игру и продолжите. Немедленная ошибка. Закройте окно ошибки, и оно повторится.
Image1
save_Shot down UFO.zip

Эта ошибка будет сохраняться при сохранении, поэтому, если исходная причина неправильного StateRefуже произошло, и вы сохраняете, он встроит эту «плохую» в сохранение, поэтому неудивительно, что перезагрузка «сломанного» сохранения вызовет ту же ошибку.

Сообщение об ошибке выше отображается, когда игра пытается использовать этот "сломанный" объект и понимает, что что-то не так, а не ошибку сама по себе. Сбой мог случиться некоторое время назад, просто сломанный объект еще не использовался.

Так что, если вы тестируете это с тем же сохранением и не создавали новую игру с момента исправления, это, вероятно, мало что нам скажет.

Да, предыдущие 3 сейва тоже глючат. Я могу вернуться к более ранним сохранениям, если это поможет.

Была ли эта страница полезной?
0 / 5 - 0 рейтинги