Themabewertung:
  • 0 Bewertung(en) - 0 im Durchschnitt
  • 1
  • 2
  • 3
  • 4
  • 5
Assertionsfehler
Verfasser Nachricht
Streckenläufer
Gleisarbeiter
*

Beiträge: 88
Themen: 16
Registriert seit: Aug 2011
#1
Assertionsfehler
Hallo,

Nach der Implementierung des trafficlight-Patches (r24357) von Hand, ist die Compilation fehlerfrei durchgelaufen.

Wenn ich aber auf "Einstellungen" klicke erscheint:

Assertion failed at line 951 of r27508/src/settings_gui.cpp: this->setting!= NULL

Kann mir jemand eventuell sagen woran dieser fehler liegen könnte, oder in welche Richtung ich suchen muss?
Dieser eintrag wurde nicht vom Patch vorgenommen.


Angehängte Dateien Thumbnail(s)
   
MfG Streckenläufer
OpenTTD 1.6.1, trunk/r27739, Trafficlight, Bridge/tunnel Signals, Watertunnel, HousePlacing, SeaplaneAirport, Clipboard, uvm.- win7/64
14.02.2016, 00:59
Suchen Zitieren
Eddi
Tycoon
*****

Beiträge: 4.066
Themen: 33
Registriert seit: Aug 2008
#2
RE: Assertionsfehler
Da hast du wohl "von Hand" irgendwas vergessen/falsch gemacht.

Da wirst du wohl mehr Details liefern müssen.
14.02.2016, 01:59
Suchen Zitieren
Streckenläufer
Gleisarbeiter
*

Beiträge: 88
Themen: 16
Registriert seit: Aug 2011
#3
RE: Assertionsfehler
Ich habe diese Version von trafficlights r24357 in die r27508 eingebaut.

Das Spiel funktioniert auch mit Ampel, nur wenn ich bei Einstellungen auf "trafficlight" drücke kommt der Absturz.

Alle Abschnitte des Patches konnte ich wie angegeben einfügen, Problem macht nur die "settings_gui.cpp", hier wurden globale Script-Änderungen gemacht die nicht mehr zum Patch passen, ich habe das wie in Bild 1 gelöst, dass ist die einzige änderung.

Die änderung von trafficlights in traffic_lights hat nichts gebracht.

Sind die einzelteile des MinGW CompilierungsWiki noch aktuell?


Angehängte Dateien Thumbnail(s)
   
MfG Streckenläufer
OpenTTD 1.6.1, trunk/r27739, Trafficlight, Bridge/tunnel Signals, Watertunnel, HousePlacing, SeaplaneAirport, Clipboard, uvm.- win7/64
(Dieser Beitrag wurde zuletzt bearbeitet: 14.02.2016, 12:34 von Streckenläufer.)
14.02.2016, 12:00
Suchen Zitieren
Eddi
Tycoon
*****

Beiträge: 4.066
Themen: 33
Registriert seit: Aug 2008
#4
RE: Assertionsfehler
und wie hast du diese Zeile eingefügt?
Code:
static SettingEntry _settings_construction[] = { SettingEntry(&_settings_construction_signals_page, STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS), + SettingEntry(&_settings_construction_trafficlights_page, STR_CONFIG_SETTING_CONSTRUCTION_TRAFFIC_LIGHTS), SettingEntry("construction.build_on_slopes"), SettingEntry("construction.autoslope"), SettingEntry("construction.extra_dynamite"),
14.02.2016, 17:57
Suchen Zitieren
Streckenläufer
Gleisarbeiter
*

Beiträge: 88
Themen: 16
Registriert seit: Aug 2011
#5
RE: Assertionsfehler
Hallo Eddi,

diese zwei Zeilen habe ich rausgenommen, hier kam beim Compilieren ständig eine fehlermeldung.
Ich bekomme diese zwei Zeilen nicht vernünftig in die settings_gui.cpp

Ich weiss auch nicht ob oder wie man diese Umschreiben kann, so das es passt.


Angehängte Dateien Thumbnail(s)
   
MfG Streckenläufer
OpenTTD 1.6.1, trunk/r27739, Trafficlight, Bridge/tunnel Signals, Watertunnel, HousePlacing, SeaplaneAirport, Clipboard, uvm.- win7/64
14.02.2016, 20:00
Suchen Zitieren
Eddi
Tycoon
*****

Beiträge: 4.066
Themen: 33
Registriert seit: Aug 2008
#6
RE: Assertionsfehler
Also ich bin mir ziemlich sicher, daß genau diese Unterlassung der Grund für deinen Fehler ist.
14.02.2016, 20:03
Suchen Zitieren
Streckenläufer
Gleisarbeiter
*

Beiträge: 88
Themen: 16
Registriert seit: Aug 2011
#7
RE: Assertionsfehler
ja, dass wird es sein, nur weiss ich nicht wie ich die anscheinend 2 wichtigen Zeilen integrieren kann.

Das Spiel funktioniert ja, auch die Einstellungen funktionieren alle, ausser der klick auf "trafficlight", also wird es wohl an diesen beiden Zeilen scheitern, denn die gehören irgendwo in die settings_gui mit hinein.
MfG Streckenläufer
OpenTTD 1.6.1, trunk/r27739, Trafficlight, Bridge/tunnel Signals, Watertunnel, HousePlacing, SeaplaneAirport, Clipboard, uvm.- win7/64
14.02.2016, 20:12
Suchen Zitieren
RK
Ehrenmitglied
*****

Beiträge: 3.264
Themen: 51
Registriert seit: Jan 2004
#8
RE: Assertionsfehler
Nimm doch diese fehlschlagende Assertion raus. Dann knallt es vielleicht an anderer Stelle wegen des Nullpointers, oder auch nicht.
14.02.2016, 22:02
Suchen Zitieren
Eddi
Tycoon
*****

Beiträge: 4.066
Themen: 33
Registriert seit: Aug 2008
#9
RE: Assertionsfehler
Na das ist ja wohl die dämlichste Idee, die ich hier jemals gehört habe...

(14.02.2016, 20:12)Streckenläufer schrieb: ja, dass wird es sein, nur weiss ich nicht wie ich die anscheinend 2 wichtigen Zeilen integrieren kann.
versuch doch mal, das Commit zu verstehen, das die Struktur von settings_gui.cpp geändert hat.

Nachtrag: r26622
(Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2016, 00:01 von Eddi.)
14.02.2016, 23:52
Suchen Zitieren
Timeflyer
Geschäftsführer
***

Beiträge: 257
Themen: 33
Registriert seit: Feb 2014
#10
RE: Assertionsfehler
(14.02.2016, 17:57)Eddi schrieb: und wie hast du diese Zeile eingefügt?
Code:
static SettingEntry _settings_construction[] = { SettingEntry(&_settings_construction_signals_page, STR_CONFIG_SETTING_CONSTRUCTION_SIGNALS), + SettingEntry(&_settings_construction_trafficlights_page, STR_CONFIG_SETTING_CONSTRUCTION_TRAFFIC_LIGHTS), SettingEntry("construction.build_on_slopes"), SettingEntry("construction.autoslope"), SettingEntry("construction.extra_dynamite"),

mal versucht.... settings_construction_traffic_lights_page, STR_CONFIG_SETTING_CONSTRUCTION_TRAFFIC_LIGHTS) anstatt
settings_construction_trafficlights_page, STR_CONFIG_SETTING_CONSTRUCTION_TRAFFIC_LIGHTS)
??

klingt evtl. banal...aber... mal versuchen. großes Grinsen
Schafft endlich das HousePlacing in den Editor !!!!
(Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2016, 00:43 von Timeflyer.)
15.02.2016, 00:42
Suchen Zitieren
Streckenläufer
Gleisarbeiter
*

Beiträge: 88
Themen: 16
Registriert seit: Aug 2011
#11
RE: Assertionsfehler
Eddi, ich versuche zu verstehen Neutral, der Nachtrag: r26622 ist eine große Hilfe, muss aber zwischendurch noch Arbeiten Verwirrt

Timeflyer, dass geht so nicht, habe ich rauf und runter probiert. Ich lese erst einmal den Commit in ruhe durch und versuche zu verstehen. Kann ein biss'l dauern.
MfG Streckenläufer
OpenTTD 1.6.1, trunk/r27739, Trafficlight, Bridge/tunnel Signals, Watertunnel, HousePlacing, SeaplaneAirport, Clipboard, uvm.- win7/64
(Dieser Beitrag wurde zuletzt bearbeitet: 15.02.2016, 14:38 von Streckenläufer.)
15.02.2016, 14:36
Suchen Zitieren
Auge
Geschäftsführer
***

Beiträge: 876
Themen: 17
Registriert seit: Mar 2009
#12
RE: Assertionsfehler
Hallo

(15.02.2016, 14:36)Streckenläufer schrieb: der Nachtrag: r26622 ist eine große Hilfe, muss aber zwischendurch noch Arbeiten Verwirrt

Schaue dir besonders die veränderte Struktur der Menüeinträge an. Die ist sogar auf doppelte Weise anders. Anders als die Struktur, die dafür entfernt wurde, aber auch anders als die, die im Patch verwendet wird.

Tschö, Auge
My Little Forum, Forum und Board in PHP
16.02.2016, 10:55
Suchen Zitieren
RK
Ehrenmitglied
*****

Beiträge: 3.264
Themen: 51
Registriert seit: Jan 2004
#13
RE: Assertionsfehler
(14.02.2016, 23:52)Eddi schrieb: Na das ist ja wohl die dämlichste Idee, die ich hier jemals gehört habe...

Da scheint aber jemand besonders starke Grundprinzipien zu haben. Augenrollen
16.02.2016, 15:43
Suchen Zitieren
Streckenläufer
Gleisarbeiter
*

Beiträge: 88
Themen: 16
Registriert seit: Aug 2011
#14
RE: Assertionsfehler
Diese Beschreibung mit Links hat mir schon weitergeholfen um festzustellen, dass es nicht an der Settings_gui.cpp liegt.

Irgendwo ist noch ein Teufelchen drin. Habe mich schon mit Rujin in verbindung gesetzt, warte noch auf Antwort, solange werde ich weiter probieren.
MfG Streckenläufer
OpenTTD 1.6.1, trunk/r27739, Trafficlight, Bridge/tunnel Signals, Watertunnel, HousePlacing, SeaplaneAirport, Clipboard, uvm.- win7/64
16.02.2016, 22:17
Suchen Zitieren
Eddi
Tycoon
*****

Beiträge: 4.066
Themen: 33
Registriert seit: Aug 2008
#15
RE: Assertionsfehler
Was auch sein könnte: in settings.ini wurde irgendwann noch ein Eintrag für die Beschreibung hinzugefügt, und die Struktur der Einträge für die Auswahl der Einstellung wurde geändert.
17.02.2016, 01:26
Suchen Zitieren
planetmaker
Tycoon
*****

Beiträge: 1.309
Themen: 25
Registriert seit: Oct 2008
#16
RE: Assertionsfehler
(16.02.2016, 15:43)RK schrieb:
(14.02.2016, 23:52)Eddi schrieb: Na das ist ja wohl die dämlichste Idee, die ich hier jemals gehört habe...

Da scheint aber jemand besonders starke Grundprinzipien zu haben. Augenrollen

Ne, da hat der Eddi vollkommen Recht; das hat nix mit Prinzipien zu tun sondern mit zielgerichteten Arbeiten. Die Assertions sind an den Stellen, wo sie sind, weil nachfolgender Code zwingend die da abgefragte Bedingung voraussetzt. Klar, kann man sie rausnehmen und dann schauen wo's kracht. Aber es wird krachen, 100%ig, die Frage ist nur wie und wo. Nur wird man dann nicht mehr einfach nachvollziehen können warum, weil man die Überprüfung an der Stelle, wo es klar ist, rausgenommen hat.

Das ist als wenn Du beim Auto die leuchtenden Lämpchen für Öldruck und Kühlwasser ausschaltest und behauptest, der Fehler sei behoben, weil die Lämpchen nicht mehr leuchten...
[Bild: 4q27gcl]
Schreib Deine eigenen NewGRFs, KIs oder Skripte. Siehe dazu DevZone, NML und Tutorien
(Dieser Beitrag wurde zuletzt bearbeitet: 17.02.2016, 09:16 von planetmaker.)
17.02.2016, 09:15
Suchen Zitieren
RK
Ehrenmitglied
*****

Beiträge: 3.264
Themen: 51
Registriert seit: Jan 2004
#17
RE: Assertionsfehler
Da muss man nun keine Autovergleiche heranziehen. Man kann mir ruhig vertrauen, denn ich bin Wissenschaftler. Cool
Wer garantiert denn dass diese Variable benötigt wird? Vielleicht stürzt es dann nur in einem Untermenü ab, dass man nicht benötigt und dann kann man damit leben.
Wer alles nur als Gott-gegeben betrachtet und sich kein Trial&Error traut, der wird nie ein guter Entwickler, Jungs.
17.02.2016, 11:02
Suchen Zitieren
Eddi
Tycoon
*****

Beiträge: 4.066
Themen: 33
Registriert seit: Aug 2008
#18
RE: Assertionsfehler
(17.02.2016, 11:02)RK schrieb: Wer alles nur als Gott-gegeben betrachtet
damit unterstellst du, daß sich weder der Entwickler, der diese Assertion da reingeschrieben hat, noch ich als ich die Antwort geschrieben hab, sich Gedanken gemacht haben, ob das da nu wirklich nötig ist, oder auch durch einen halbherzigen Hack umgangen werden kann.
Zitat:und sich kein Trial&Error traut, der wird nie ein guter Entwickler, Jungs.
Das ist nu wirklich kompletter Unsinn. Klar hilft ein gewisser Spieltrieb beim Verstehen von Problemen, aber zu nem "guten" Entwickler gehört auch, daß man sich ernsthafte Gedanken macht, bevor man was tut.
(Dieser Beitrag wurde zuletzt bearbeitet: 17.02.2016, 18:17 von Eddi.)
17.02.2016, 18:16
Suchen Zitieren
RK
Ehrenmitglied
*****

Beiträge: 3.264
Themen: 51
Registriert seit: Jan 2004
#19
RE: Assertionsfehler
Man muss erstmal hinterfragen was der Zweck dieser Anweisung ist. Der Entwickler versucht damit an einer gewissen Stelle einen Nullzeiger auszuschließen und hofft dadurch Fehler etwas früher zu entdecken. Ob das nun einen relevanten Nutzen kommt auf den Fall an. Da gibt es heutzutage wohl aber coolere Konzepte (Stichwort für Neugierige: Option type).
Jedenfalls ist die Intention des Entwicklers die Codequalität für den Endnutzer hoch zu halten. Aber auf der Schiene bewegen wir uns ja gar nicht. Der Captain will nur ein Programm für sich selbst kompilieren und das schlimmste was beim experimentieren schief gehen kann ist, dass das Programm abstürzt.
17.02.2016, 19:18
Suchen Zitieren
Streckenläufer
Gleisarbeiter
*

Beiträge: 88
Themen: 16
Registriert seit: Aug 2011
#20
RE: Assertionsfehler
habe heute meinen Trunk von Revision r27506 auf r27508 erneuert, wollte neu Compilieren und erhalte folgende Fehler ohne eingegriffen zu haben (siehe Bild). Der Trunk 27506 hat einwandfrei funktioniert und ich konnte damit spielen.

Habe mir die r27506 noch einmal gezogen und fehlerfrei Compiliert, sowie ich die Revision auf r27508 steigere und Compiliere erhalte ich gleiche fehler.

Die Liste ist noch länger und betrifft die settings.h aus /objs


Angehängte Dateien Thumbnail(s)
       
MfG Streckenläufer
OpenTTD 1.6.1, trunk/r27739, Trafficlight, Bridge/tunnel Signals, Watertunnel, HousePlacing, SeaplaneAirport, Clipboard, uvm.- win7/64
(Dieser Beitrag wurde zuletzt bearbeitet: 18.02.2016, 12:43 von Streckenläufer.)
18.02.2016, 12:38
Suchen Zitieren


Gehe zu:


Benutzer, die gerade dieses Thema anschauen: 1 Gast/Gäste

Kontakt | Transport Tycoon Main Station | Nach oben | Archiv-Modus | RSS-Synchronisation