Beiträge: 24
Themen: 5
Registriert seit: Feb 2009
Bewertung:
0
26-02-2009, Thursday-03:50:21
Simutrans-Version:
101, war aber schon in 100 so
PAK-Set (+zusätzliche PAK-Dateien):
Tritt sowohl mit pak64-101 als auch mit pak128-1.4.4 auf
Betriebssystem:
Linux (Ubuntu Intrepid AMD64)
Fehler (möglichst genaue Beschreibung):
Wenn ich das Spielfenster maximiert habe und dann ein In-Game-Fenster schnell gegen den rechten Rand hin schiebe, stürzt ST ab. gdb sagt dazu folgendes:
Zitat:Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread 0x7f70e83486f0 (LWP 8630)]
0x00000000005cf463 in pixcopy (dest=0x7f70e198015e, src=0x2cc0000, len=4294967270) at simgraph16.cc:1516
1516 while (dest < end) *dest++ = *src++;
Verhalten (Absturz, Einfrieren, ...):
Absturz. Mehr oder weniger reproduzierbar; passiert nicht jedesmal, aber wenn man wiederholt ein Fenster schnell gegen den rechten Rand schiebt, sollte durchschnittlich nach 5-6 mal ein Absturz eintreten. Ich habe den Verdacht, dass die Absturzwahrscheinlichkeit höher ist, wenn mehr (In-Game-)Fenster geöffnet sind oder mehr los ist auf der Karte (funktioniert aber auch auf leeren Karten).
Falls sich der Bug nicht beheben lässt, würde eine Autosave-Funktion den jeweiligen Ärger über das Auftreten doch bedeutend verringern.
Es fährt kein Zug nach Eierbach!
26-02-2009, Thursday-09:29:39
konnte ich nicht reproduzieren. Was hast du denn fuer eine Aufloesung? Passiert das mit allen moeglichen Fenstern oder nur einem bestimmten?
Was ich nur beobachten konnte, war, dass manchmal beim Schieben eines Fensters nach rechts unten am linken Rand graue Pixel-Artefakte kamen. Die waren aber nur einen Pixel breit. Auch das passierte nicht immer.
Beiträge: 2.049
Themen: 218
Registriert seit: Feb 2005
Bewertung:
0
26-02-2009, Thursday-09:41:21
Kann ich auch nicht reproduzieren (openSuSE 11.1, KDE 4, 32bit - ich nehme an, Du hast eine 64bit-Version?). Hast Du das Fenster, in dem Simutrans läuft, maximiert oder hast Du Simutrans als Vollbild gestartet?
Wenn Du den Absturz reproduzieren kannst, starte so:
./simutrans -debug
dann erscheinen die Fehlermeldungen im Terminal, und die letzten Zeilen vor dem Absturz sind sehr hilfreich.
26-02-2009, Thursday-10:13:56
Das Zitat da oben ist ja schon hilfreich. Der Fehler tritt in der Pixel-Kopierroutine auf, es wird ueber den zu Verfuegung stehenden Platz hinausgeschrieben.
Es wird sich wohl um einen Overflow in der 32bit-Variablen len handeln: len war eigentlich negativ, wird in einen unsigned int umgewandelt und deshalb ziemlich gross.
Beiträge: 158
Themen: 11
Registriert seit: Jan 2009
Bewertung:
0
26-02-2009, Thursday-11:19:23
Noch zum Thema Autosave!
Das gibt es schon lange.
Editiere hierzu die Datei simuconf.tab des entsprechenden pak-sets, dass du gerade spielst. Da sollte es eine Zeile geben:
autosave = 0
Einfach auf
autosave = 1
ändern, und es wird jeweils zu Monatsbeginn ein Spielstand gespeichert.
vgl. auch http://simutrans-germany.com/wiki/wiki/t..._speichern
26-02-2009, Thursday-11:39:47
Zitat:Original von Dwachs
Was ich nur beobachten konnte, war, dass manchmal beim Schieben eines Fensters nach rechts unten am linken Rand graue Pixel-Artefakte kamen. Die waren aber nur einen Pixel breit. Auch das passierte nicht immer.
Gut zu beobachten, wenn man die Karte nach rechst schiebt und links dann blaues Wasser ist. Oder das Linienmanager-Fenster laaangsam nach rechts raus schieben, dann erscheinen die senkrechten weissen Linien nochmal kurz am linken Rand.
Das liegt wohl daran, dass die clipping-Abfragen in simgraph16.cc nicht immer richtig sind:
ein pixel mit Koordinate xp wird angezeigt, falls
Code: clip. x <= xp < clip.xx
der rechte Rand von einem Bild das w Pixel breit ist und an Stelle xp kommt wird angezeigt falls
Code: clip.x < xp+w <= clip.xx
man beachte den Unterschied zwischen den beiden Abfragen. Das wurde in simgraph16.cc nicht konsequent durchgehalten.
Patch folgt in der Mittagspause ^^
Was diese Beobachtung allerdings mit dem Absturz von Sam zutun hat? k.A.
26-02-2009, Thursday-15:24:38
Patch und Linux-Executable sind hier verfuegbar:
Linux Executable fuer gcc4
Patch-File
@Sam: kannst du mal testen, ob der Absturz wieder kommt?
Beiträge: 24
Themen: 5
Registriert seit: Feb 2009
Bewertung:
0
26-02-2009, Thursday-18:32:27
Zitat:Original von Gotthardlok
Wenn Du den Absturz reproduzieren kannst, starte so:
./simutrans -debug
dann erscheinen die Fehlermeldungen im Terminal, und die letzten Zeilen vor dem Absturz sind sehr hilfreich.
Ich denke nicht. Zitat:Message: wkz_abfrage(): checking map square 24,150
Message: wkz_abfrage(): index 0
Message: create_win(): ins_win=12
Message: create_win(): new ins_win=13
Message: top_win(): win=12 ins_win=13
Message: top_win(): win=12 ins_win=13
Message: top_win(): win=12 ins_win=13
Message: top_win(): win=12 ins_win=13
Segmentation fault
-> der gdb-Output scheint mir da aussagekräftiger zu sein. Mit Patch geschieht genau dasselbe; ich habe beim erneuten Testen aber den Eindruck bekommen, dass der Fehler mit pak128 schneller auftritt und auch da auf einer neuen Karte erst, wenn man zuerst auf dem Spielfeld hin- und hergescrollt ist (was im Spiel ja sowieso der Fall ist, aber nicht unbedingt, wenn man den Bug zu reproduzieren versucht).
@HomerSimpson: Oh. Vielleicht sollte ich etwas mehr RTFM, bevor ich motze. Wäre ja irgendwo auch verwunderlich, wenn bisher noch niemand diese Funktion eingebaut hätte
Es fährt kein Zug nach Eierbach!
27-02-2009, Friday-09:21:50
Zitat:Original von Sam
-> der gdb-Output scheint mir da aussagekräftiger zu sein.
ja der reicht schon, diese Routine wird von nur einer anderen aufgerufen etc. Dummerweise siehts so aus, als moechte Simttrans ein Bild zeichnen mit einer negativen Anzahl Pixel. Was generell keine gute Idee ist. Ich kann den Fehler aber nicht nachvollziehen.
Hast du selber kompiliert oder meine Programmdatei genommen?
Du hast das Programm in einem maximierten Fenster laufen? Wie gross ist das? Steht in der Konsole, von der Simutrans ausgestartet wurde.
Wie gross ist deine Karte?
Kommt mit dem Patch derselbe Fehler (in pixcopy)?
Zweiter Versuch:
linux executable gcc 4
patch file
Tritt der Fehler auch auf, wenn ein normales Fenster nicht vollstaendig (oder gar nicht) sichtbar ist? Ich meine ein Fenster, in dem kein kleiner Ausschnitt der Welt zu sehen ist. Also Linienmanager etc aber kein Info-Fenster von Fahrzeugen, Haeusern etc.
27-02-2009, Friday-22:28:39
@Sam: bitte mal mit einem neuen Nightly testen. Bug sollte in r2350 gefixt sein. Hoffentlich
|