Openapoc: Kein Fahrzeug passend zur ID "VEHICLE_794" CTD

Erstellt am 23. Nov. 2017  ·  33Kommentare  ·  Quelle: OpenApoc/OpenApoc

Aus dem Log nach einer CTD...

W 52740355833 bool __cdecl OpenApoc::Vehicle::popFinishedMissions(class OpenApoc::GameState &): Keine nächste Fahrzeugmission, im Leerlauf
E 52741482678 Klasse std::shared_ptr__cdecl OpenApoc::Vehicle::get(const class OpenApoc::GameState &,const class OpenApoc::UString &): Kein Fahrzeug passend zur ID "VEHICLE_794"
0x00000001402F9D30 PHYSFS_writeSLE16+0x15f400
0x000000014020208A PHYSFS_writeSLE16+0x6775a
0x0000001401FFD3A PHYSFS_writeSLE16+0x6540a
0x00000001400A784C PHYSFS_swapULE64+0x6600c
0x000000013FFA3D32 PHYSFS_swapULE64+0xfffffffffff624f2
0x000000013FF7F210 PHYSFS_swapULE64+0xffffffffffff3d9d0
0x000000014017E015 PHYSFS_swapULE64+0x13c7d5
0x0000000077A159CD BaseThreadInitThunk+0xd
0x0000000077C4A561 RtlUserThreadStart+0x21

image

image

Hilfreichster Kommentar

Dieser Fehler bleibt beim Speichern bestehen - also wenn die ursprüngliche Ursache für eine schlechte StateRefbereits passiert ist und du speicherst, wird diese "Schlechtigkeit" in den Speichervorgang eingebettet, daher ist es nicht verwunderlich, dass das erneute Laden eines "kaputten" Speichers denselben Fehler verursacht.

Die obige Fehlermeldung wird angezeigt, wenn das Spiel versucht, dieses "kaputte" Objekt zu verwenden und feststellt, dass etwas nicht stimmt, kein Fehler an sich. Der Fehler kann schon vor einiger Zeit aufgetreten sein, nur das kaputte Objekt wurde noch nicht verwendet.

Wenn Sie dies also mit demselben Speicherstand testen und seit dem Fix kein neues Spiel erstellt haben, sagt uns dies wahrscheinlich nicht viel.

Alle 33 Kommentare

Nur ein Kopf hoch
Dieses CTD hat jetzt zwei Spiele verwanzt.
Beides auf der "Easy Map"
Beide mit Fahrzeug-ID 794~
Wenn Sie auf "Limp Along" klicken, gelangen Sie direkt zurück zum Desktop.

Dieser Backtrace sieht falsch aus, als ob er die Debug-Symbole nicht finden kann (also verwendet er nur das nächste Symbol, das es finden kann, das zufällig physfs ist).

Wenn Sie die Appveyor-Builds verwenden - können Sie das 'Debug'-Paket über den Anfang extrahieren? Die .pdb-Dateien befinden sich also im selben Verzeichnis wie die .exe?

Und "versuchen zu humpeln" funktioniert bei einigen Fehlern (wie diesem) einfach nicht, da der Fehler effektiv sagt "Wir stehen kurz vor dem Absturz, und hier ist der Grund:", also stürzt der Versuch, fortzufahren, einfach ab :)

Als längerfristiges Ziel könnte es möglich sein, den aktuellen 'Speicher'-Zustand bei einem Fehler zu löschen, es könnte uns nützliche Informationen darüber geben, was nicht stimmt ... Aber das kann genau das gleiche Problem darstellen (wenn die internen Daten dies nicht können Vertrauen Sie uns, wir könnten einfach abstürzen, wenn wir versuchen, den Speicherstand zu schreiben)

@JonnyH Kein Problem, werde übertrieben zu testen, wenn ich am Montag von der Arbeit zurückkomme ...

Momentan bis zu meinen Augäpfeln bei jungen Turnern :D

wie jung? ) hoffe es ist legal XD

@makus82 leider waren dieses Wochenende und zuletzt alle bis auf die letzten zu jung. Aber Uni-Events, wenn ich sie mache, machen immer Spaß - heiße Frauen, alles legal

Bezüglich der CTD finden Sie im Anhang Protokoll, Speicher usw. Einfach mal starten und das Spiel stürzt ab...

Ich habe getan, was @JonnyH gesagt hat, und die Debug-Installation über die Dinge gelegt, bevor ich diese generiert habe ...

openapoc_log.txt

save_Easy 1.zip

Und eine andere Variante derselben Speicherdatei ...

image

openapoc_log.txt

Wieder in 0,1-117
Sogar eine Neuinstallation durchführen (alle vorhandenen Apoc-Daten außer Speichern löschen, erneut aus der ZIP-Datei entpacken)

image

Ich kann einige Details liefern.
Schritte zum Reproduzieren:

  1. Starte das Spiel auf mittlerem (vielleicht beliebigem) Schwierigkeitsgrad
  2. Boden (vielleicht irgendein) Fahrzeug verkaufen
  3. Spiel speichern
  4. Spiel laden
  5. Spiel unterbrechen

@OverDrone

Ah, ja, in allen Spielen, in denen ich diese CTD bekomme, verkaufe ich meinen Wolfshund-APC und Stormdog, um ein paar zusätzliche tausend in bar für Fahrzeuge zu bekommen, die ich nie benutze.

Ich werde einen Test mit einem Spiel machen, wenn ich KEINE Fahrzeuge verkaufe und sehen, ob dieser Fehler auftritt.
Derzeit habe jedes Spiel, das ich verkauft habe, jedes Fahrzeug verkauft, bei dem es abstürzt...

Hmmmm, habe gerade diesen Absturz bei einem Spiel bekommen, bei dem ich KEINE Bodeneinheiten verkauft habe ... Scheint bemerkenswert ähnlich zu sein ...

image
image
image

Gleiches Problem hier .... ich kann keine Veicle- und Debug-Option verkaufen, die mich zum Desktop führt ...
irgendeine idee x lösen?

Der Code des Transaktionsbildschirms sieht chaotisch aus. Dieses Problem ist ohne Refactoring schwer zu beheben.

Immer noch auf 0.1-167 ( OpenApoc-x64-v0.1-167-gf31d8b8b ) vorhanden, was ein wenig nervig ist... Der Fahrzeugsterben-Bug wird sortiert gemeldet. Wundern Sie sich, warum dieser Fehler sich weigert, zerquetscht zu werden?

image
image
image

Hast du ein Spiel geladen oder ein neues gestartet?
Versuchen Sie, ein neues Spiel zu testen.

Habe gerade ein neues Spiel mit einer Neuinstallation gestartet, um es zu überprüfen. Werde es bestätigen, wenn immer noch ein Problem besteht.

OK, das Spiel ist anscheinend aufgrund von Problem #255 abgestürzt, bevor ich bestätigen kann, dass dieses Problem behoben ist.

Trotzdem konnte ich Stormdog und Wolfhound APC und noch kein 794 CTD verkaufen, bin aber auch bis zum Ende des ersten Tages nicht ohne Spielunterbrechung durchgekommen :(

Bitte lesen Sie den neuesten Kommentar zu #255 für das Protokoll und die Bildschirme des Absturzes, der mein neues Spiel beendete

@redv Der Fahrzeugabsturz scheint behoben, das Problem scheint sich jedoch auch auf Agenten ausgeweitet zu haben, dieser Fehler tritt immer noch auf ...

image
image

Absturz beim Beenden des Spiels?

Es passiert beim Beenden des Spiels ODER beim Aufrufen des Basisbildschirms (der obige Fall wurde beendet)

@redv Leider hatte ich gerade wieder den Agent 45-Fehler bei einer frischen, sauberen Installation und einem neuen Spiel von OpenApoc. Beim Beenden des Spiels wie folgt aufgetreten...

Die Spielversion ist die neueste Version (0.1-172 zum Zeitpunkt des Schreibens)

image
image
image

Ein Klick auf "Limp Along" erzeugt diese Variante...
image
image

Wenn die Anwendung die GameState-Klasse zerstört, zerstört erstens die Agentenliste, zweitens Basen, Einrichtungen, Labore usw. Die Lab-Klasse enthält eine eigene Agentenliste (Wissenschaftler), aber bereits zerstörte Agentenklassen. Somit tritt der Fehler auf.
Der PR #337 behebt diesen Fehler.
Als Workaround ist es möglich, Wissenschaftler aus dem Labor zu entfernen, bevor das Spiel beendet wird.

@redv
Leider immer noch eine Variante dieses Problems in der Version OpenApoc-debug-x64-v0.1-169-g921de2a3

Diesmal bewege ich Agenten (zu Fuß durch die People Tubes) zu einem Alien-Vorfall in den Slums. Ich bereite mich auch darauf vor, einen CoS-Tempel zu überfallen, der Fehler tritt mit dem ausgewählten Gebäude und den ausgewählten Agenten auf.

image
image
image

Bitte den letzten Save vor CTD anhängen.

@redv hier gehts. Um den Fehler zu wiederholen, schicke die Walküre zum CoS-Tempel nordöstlich der Basis und schicke die beiden Android-Agenten zu dem Vorfall in den Slums, der nach ein oder zwei Minuten zu Fuß auftaucht.

Ein Fehler tritt auf, wenn die Walküre am CoS-Tempel ankommt und Sie die darin befindlichen Agenten auswählen, um das Gebäude zu überfallen.

save_Medium Test 1.zip

Savegame war ein neues, das heute auf einer sauberen Installation von OpenApoc erstellt wurde. Das Spiel ist in den ersten Spielminuten...

Der Fehler tritt auf, wenn das Spiel versucht, Ressourcen für die Battlemap zu laden. Die Karte enthält mehrere Blöcke, die zufällig aus einem Set ausgewählt werden. Sieht so aus, als ob einer von ihnen beim Laden von Ressourcen zu einem Fehler führt.
Dh wenn Sie die gleichen Aktionen mehrmals wiederholen, wird die CoS-Battlemap früher oder später erfolgreich geladen. Diese Karte wird ohne den schlechten Block sein.

  1. Insekt. Sie müssen herausfinden, warum das Spiel einige Kartenblöcke nicht laden kann.

Der AGENT_35 ist der Quantenphist Peter Jones.
Wenn der Fehler beim Laden der Karte auftritt, ruft das Spiel während des Absturzes Destruktoren auf. Destructros von Agenten wird vor Destructros von Labs ausgeführt. Der Destruktor des Labors versucht, Agenten zu befreien, aber die Agenten sind bereits aus dem Gedächtnis verschwunden. Somit tritt ein zweiter Fehler in der StateRef-Klasse auf, die den Agenten in der Lab-Klasse enthält.

  1. Insekt. Ich denke, die StateRef-Klasse ist ein großer Architekturfehler. Verwenden Sie besser normale C-Zeiger. Ich denke, das "Beobachter" -Muster kann die meisten Probleme lösen. Zumindest werde ich versuchen, eine gute Lösung zu finden.

Danke redv ; lass es mich wissen, wenn du eine Idee hast, welche Lösung funktionieren könnte

Was Karten betrifft, könnte dies mit Ausgabe #284 zusammenhängen? Ich bemerke eine ganze Reihe von CoS-Karten und einige andere scheinen Fehler zu generieren, wenn Gegenstände von getöteten / betäubten / in Panik geratenen Einheiten fallengelassen werden.

Ein weiterer Absturz bei 0.1-200 , diesmal beim Öffnen des Agentenbildschirms... Nachdem ich den Stormdog bereits verkauft habe.
image
image
image

Die Auswahl von "Limp Along" bewirkt dies

image
image

Ausrüstung diesmal :(
Erstellen Sie bitte eine neue Ausgabe. Weil dieser zu tief in der Warteschlange der Probleme steht.

Wenn Sie bestätigen, dass dies immer noch ein Problem ist, wird dies beim Verkauf eines Fahrzeugs angezeigt, wenn etwas damit verbunden ist.

I 417929443733 void __cdecl anonymous-namespace'::SDLRawBackend::setTrack(class std::shared_ptr): Spur setzen auf 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(class std::shared_ptr,float): Platziert Sound 0,000,019,BFD,B86,6B0 auf Warteschlange
I 427732686087 class std::shared_ptr__cdecl OpenApoc::Vehicle::addEquipment(class OpenApoc::GameState &,struct glm::tvec2,Klasse OpenApoc::StateRef): Ausgestattet mit "Valkyrie Interceptor 90" mit allgemeiner Ausrüstung "Passenger Module"
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(class std::shared_ptr,float): Platziert Sound 0,000,019,BFD,B86,6B0 auf Warteschlange
W 432416803536 void __cdecl OpenApoc::StateRef::resolve(void) const: AEquipmentType-Objekt hat ungültiges Präfix - erwartete "AEQUIPMENTTYPE_" ID "VEHICLE_794"
E 432419555645 Klasse std::shared_ptr__cdecl OpenApoc::AEquipmentType::get(const class OpenApoc::GameState &,const class OpenApoc::UString &): Kein Gerätetyp passend zur ID "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``

Mehrere Tage ausgiebiger Spieltests, und ich habe diesen Fehler seitdem nicht mehr gesehen
Abschlussproblem.

Vielen Dank Jarskih, RedV und JonnyH

Fehler im Juli 2019 noch aktiv. Gespeichertes Spiel wiederherstellen und dann fortfahren. Sofortiger Fehler. Schließen Sie das Fehlerfenster und es wiederholt sich.
Image1
save_Shot down UFO.zip

Dieser Fehler bleibt beim Speichern bestehen - also wenn die ursprüngliche Ursache für eine schlechte StateRefbereits passiert ist und du speicherst, wird diese "Schlechtigkeit" in den Speichervorgang eingebettet, daher ist es nicht verwunderlich, dass das erneute Laden eines "kaputten" Speichers denselben Fehler verursacht.

Die obige Fehlermeldung wird angezeigt, wenn das Spiel versucht, dieses "kaputte" Objekt zu verwenden und feststellt, dass etwas nicht stimmt, kein Fehler an sich. Der Fehler kann schon vor einiger Zeit aufgetreten sein, nur das kaputte Objekt wurde noch nicht verwendet.

Wenn Sie dies also mit demselben Speicherstand testen und seit dem Fix kein neues Spiel erstellt haben, sagt uns dies wahrscheinlich nicht viel.

Ja, die vorherigen 3 speichert auch Fehler. Ich kann zu früheren Speichern zurückkehren, wenn es hilft.

War diese Seite hilfreich?
0 / 5 - 0 Bewertungen

Verwandte Themen

FilmBoy84 picture FilmBoy84  ·  3Kommentare

Quickmind01 picture Quickmind01  ·  3Kommentare

BeornTB picture BeornTB  ·  3Kommentare

FilmBoy84 picture FilmBoy84  ·  3Kommentare

nbe-renzel-net picture nbe-renzel-net  ·  3Kommentare