| |
|
|
- Seite 1 - |
|
|
|
| |
|
|
| |
|
- Seite 4 - |
|
|
RGH | iF (06.03.13)
Ich besitze einen Computer wo der Quelltext dies auswirft: und einen wo es (wie bei Dir) funktioniert. Auf dem Computer wo das Programm abstürzt funktioniert das Programm mit XProfan11 fehlerfrei. Beide Computer XP uptodate SP3, einmal ein alter Duo mit dem Absturz und einmal dieser:
Welche Zeile führt denn zum Absturz?
Gruß Roland |
|
|
| XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 07.03.2013 ▲ |
|
|
|
|
| Bis zum Print kommt das Programm nicht mehr: KompilierenMarkierenSeparieren Ich sitze nachher wieder an diesem Computer und kürze den Code weiter - war halt davon ausgegangen dass der Code bei Dir auch abstürzt und der Fehler leicht gefunden würde. Ich glaube ohne long __hcf15,0=&getTickCount kein Absturz, gebe dann aber nochmal bescheid. Die Zeile sollte den getTickCount- Wert in den Speicher __hfc15 (4 Byte reserviert per globalAlloc) schreiben. |
|
|
| |
|
|
|
RGH | Kann es sein, dass der betreffende Rechner länger als ca. 25 Tage läuft? Ich habe mal im Quellcode nachgeschaut. Die Api TimeGetTime (die ich wegen der besseren Genauigkeit anstelle von GetTickCount verwende) liefert ein DWORD zurück. Ich weise dieses Ergebnis einem LONGINT zu. An dieser Stelle verhält sich FreePascal leider anders als Delphi: Wenn in Delphi das DWORD über die 2,x Milliarden Grenze hinausgeht, wird der LONGINT dann einfach negativ. Delphi castet hier quasi automatisch ein DWORD auf einen LONGINT. Es wird also das Bitmuster übertragen. FreePascal macht es anders: Es stürzt mit einem RangeException-Error ab, selbst wenn die entsprechende Compilerdirektive gesetzt ist, auf RangeExceptions nicht zu reagieren. Also muss ich das Casting in den Code eintragen, dann klappt es auch noch nach 30 Tagen ... hoffe ich.
Kurz: Wenn ich mit meiner Vermutung recht habe, sollte a) die von Dir genante Zeile den Fehler verursachen und b) dieser nach einem Neustart des Rechners nicht mehr auftreten.
Ganz kurz: Schon mal mit aus- und einschalten versucht?
Gruß Roland |
|
|
| Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 07.03.2013 ▲ |
|
|
|
|
| So, sitze jetzt am betreffendem Rechner und gebe gleich alles durch! |
|
|
| |
|
|
|
|
|
|
| |
|
|
|
RGH | Ok, dann solltest Du Deinen Rechner unbedingt mal neu booten. (Da der "Überlauf" bei etwa 25 Tagen auftritt, läuft Dein Rechner also schon etwa 37 Tage lang.)
Im Ernst: Es ist genau das vermutete Problem. Heute Abend gibt es eine Version, bei der es hoffentlich nicht mehr auftritt. Lasse Deinen Rechner wegen des Tests also einfach mal weiterlaufen.
Gruß Roland |
|
|
| XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 07.03.2013 ▲ |
|
|
|
|
| Lasse ich, ist halt als "Server" in Betrieb und so stabil, dass ein tägliches Neustarten normalerweise nicht notwendig ist. |
|
|
| |
|
|
|
RGH | Sodele, neue 32-Bit-Version hochgeladen, die auch bei Dir mit GetTickCount klarkommen sollte. Außerdem habe ich bei OGLTest mal wieder was geändert ... in der Hoffnung, dass es auch hier irgendwann passt.
Gruß Roland |
|
|
| XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 07.03.2013 ▲ |
|
|
|
|
| Juhu jetzt läuft der Code erstmal durch und TestMode funktioniert -
Code verursacht aber zum Ende hin noch einen Absturz den ich noch genauer auffinden muss.
Das Rückgabeergebnis von endTest ist jetzt aber wo kein Objekt liegt 0 statt wie zuvor -1, dass ist aber vielleicht egal bzw. planets.prf könnte da irritieren wegen setname("0").
|
|
|
| |
|
|
|
| Hmpf,
und hier das Bild vom Intel I7 mit HD4000:
Danach klappt create("hPic",0,"&OGLBMP") nicht und der Testmodus liefert ungenau bis unbrauchbar. Ich könnte heulen. |
|
|
| |
|
|
|
RGH | iF (08.03.13)
Das Rückgabeergebnis von endTest ist jetzt aber wo kein Objekt liegt 0 statt wie zuvor -1, dass ist aber vielleicht egal bzw. planets.prf könnte da irritieren wegen setname("0").
Ein Tippfehler im veränderten Code. Wird nnoch beseitigt!
Gruß Roland . |
|
|
| XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 08.03.2013 ▲ |
|
|
|
|
RGH | Neue Version hochgeladen und bei endTest noch mal was angepasst.
@iF: Schau mal, wie weit Du jetzt kommst.
@alle Anderen: Testen und Fehler melden!
Gruß Roland |
|
|
| XProfan X2Intel Duo E8400 3,0 GHz / 4 GB RAM / 1000 GB HDD - ATI Radeon HD 4770 512 MB - Windows 7 Home Premium 32Bit - XProfan X4 | 08.03.2013 ▲ |
|
|
|