Deutsch
Forum

FreeProfan - Tests...

 
- Seite 1 -


 
23.01.2013  
 



 
- 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 X2
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  
 



Bis zum Print kommt das Programm nicht mehr:
KompilierenMarkierenSeparieren
declare handle __hcf1,__hcf2,__hcf15
def __cf1(2) !"KERNEL32","GetProcAddress"
def __cf2(1) !"KERNEL32","GetModuleHandleA"
__hcf1=__cf1(__cf2("KERNEL32"),"GlobalAlloc")
__hcf2=__cf1(__cf2("KERNEL32"),"GlobalFree")
__hcf15=call(__hcf1,64,4)
long __hcf15,0=&getTickCount
print "test"
waitinput
end

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.
 
07.03.2013  
 




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!
 
07.03.2013  
 



Genau, bei getTickCount überhaupt stürzt er ab:
KompilierenMarkierenSeparieren
XProfan11 meldet:


5 kB
Hochgeladen:07.03.2013
Ladeanzahl73
Herunterladen
 
07.03.2013  
 




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 X2
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  
 



Lasse ich, ist halt als "Server" in Betrieb und so stabil, dass ein tägliches Neustarten
normalerweise nicht notwendig ist.
 
07.03.2013  
 




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 X2
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  
 



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").


118 kB
Hochgeladen:08.03.2013
Ladeanzahl71
Herunterladen
 
08.03.2013  
 



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.

3 kB
Hochgeladen:08.03.2013
Ladeanzahl61
Herunterladen
 
08.03.2013  
 




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 X2
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
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 X2
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
08.03.2013  
 




Antworten


Thementitel, max. 100 Zeichen.
 

Systemprofile:

Kein Systemprofil angelegt. [anlegen]

XProfan:

 Beitrag  Schrift  Smilies  ▼ 

Bitte anmelden um einen Beitrag zu verfassen.
 

Themenoptionen

101.896 Betrachtungen

Unbenanntvor 0 min.
Gast.081513.11.2024
Member 862464111.05.2024
Sven Bader16.09.2021
p.specht10.06.2021
Mehr...

Themeninformationen



Admins  |  AGB  |  Anwendungen  |  Autoren  |  Chat  |  Datenschutz  |  Download  |  Eingangshalle  |  Hilfe  |  Händlerportal  |  Impressum  |  Mart  |  Schnittstellen  |  SDK  |  Services  |  Spiele  |  Suche  |  Support

Ein Projekt aller XProfaner, die es gibt!


Mein XProfan
Private Nachrichten
Eigenes Ablageforum
Themen-Merkliste
Eigene Beiträge
Eigene Themen
Zwischenablage
Abmelden
 Deutsch English Français Español Italia
Übersetzungen

Datenschutz


Wir verwenden Cookies nur als Session-Cookies wegen der technischen Notwendigkeit und bei uns gibt es keine Cookies von Drittanbietern.

Wenn du hier auf unsere Webseite klickst oder navigierst, stimmst du unserer Erfassung von Informationen in unseren Cookies auf XProfan.Net zu.

Weitere Informationen zu unseren Cookies und dazu, wie du die Kontrolle darüber behältst, findest du in unserer nachfolgenden Datenschutzerklärung.


einverstandenDatenschutzerklärung
Ich möchte keinen Cookie