gwX Forum
Würden Sie gerne auf diese Nachricht reagieren? Erstellen Sie einen Account in wenigen Klicks oder loggen Sie sich ein, um fortzufahren.

Scriptsprache Bugfixes

2 verfasser

Nach unten

Scriptsprache Bugfixes Empty Scriptsprache Bugfixes

Beitrag  Carli Mo 22 Jun 2009 - 11:05

Ich hab schonmal ein bissel an der Scriptsprache gebastelt und einige Sachen geändert, u.a. werden Fehlermeldungen präziser ausgegeben, verschachtelte Kommentare sind möglich und die Syntax ist nicht mehr ganz so streng.

Bitte versucht, alle möglichen Abstürze aus der Scriptengine herauszukitzeln und den fehlerhaften Scriptcode mir zu geben, sodass ich die Engine sicherer machen kann.

Carli
Admin

Anzahl der Beiträge : 1001
Anmeldedatum : 02.01.09

Nach oben Nach unten

Scriptsprache Bugfixes Empty Re: Scriptsprache Bugfixes

Beitrag  Eddy Sa 4 Jul 2009 - 13:10

Logische Verschachtelungen erzeugen eine Zugriffsverletzung:
Ich wollte irgendsoein Statement wie folgendes Schreiben:

Code:
if((a = 1 and b = 2) or b = 3)

Also wenn a = 1 und b = 2 ist, oder b = 3 ist soll das dings ausgeführt werden. Allgemein sind logische Operatoren etwas buggig.

Der Parser meckert übrigens nicht rum dabei. Ich brauchte 2 Stunden um herauszufinden dass der Fehler an obiger Bedingung lag und nicht an einem anderen frisch implementierten Codeschnipsel :/

Eddy

Anzahl der Beiträge : 509
Anmeldedatum : 14.01.09
Alter : 30

http://systems.bitfarmclan.de

Nach oben Nach unten

Scriptsprache Bugfixes Empty Re: Scriptsprache Bugfixes

Beitrag  Eddy Sa 4 Jul 2009 - 13:23

Code:
stdcall lkwlist_nextlocal(o)
{
 var i;
 i := 0;
 while(Local(o).(i) <> 0 and i < 31){i++;};
 return i;
}

Eigentlich sollte das Dings doch so lange "weitermachen", bis entweder 1 >= 31 ist oder Local(o).(i) = 0. Allerdings scheint das and einem or gleichgeschaltet zu sein, zumindest rattert die Schleife immer durch, bis i >= 31 ist.

Eddy

Anzahl der Beiträge : 509
Anmeldedatum : 14.01.09
Alter : 30

http://systems.bitfarmclan.de

Nach oben Nach unten

Scriptsprache Bugfixes Empty Re: Scriptsprache Bugfixes

Beitrag  Carli Sa 4 Jul 2009 - 14:38

Zum oberen Post: ich hab das alles mal durchexerziert, aber anscheinend scheints zu funktionieren.
Die Klammern kannst du weglassen, da die Operatoren in genau der geklammerten Reihenfolge auch ihre natürliche Priorität haben.

Carli
Admin

Anzahl der Beiträge : 1001
Anmeldedatum : 02.01.09

Nach oben Nach unten

Scriptsprache Bugfixes Empty Re: Scriptsprache Bugfixes

Beitrag  Carli Sa 4 Jul 2009 - 15:01

Ich hab für das 2te Beispiel einen Bug in der Scriptengine gefunden.

Ich hatte eine Registersicherung vergessen. (ecx wurde überschrieben beim Zugriff auf mov eax,[eax+4*ecx])

Carli
Admin

Anzahl der Beiträge : 1001
Anmeldedatum : 02.01.09

Nach oben Nach unten

Scriptsprache Bugfixes Empty Re: Scriptsprache Bugfixes

Beitrag  Eddy Sa 4 Jul 2009 - 17:49

Jetzt macht es iwie gar keinen sinn mehr :/
In obigem Beispiel scheint die Bedingung nie wahr zu werden, de facto ist i aber < 31 und ohne diesen part gehts auch^^

Eddy

Anzahl der Beiträge : 509
Anmeldedatum : 14.01.09
Alter : 30

http://systems.bitfarmclan.de

Nach oben Nach unten

Scriptsprache Bugfixes Empty Re: Scriptsprache Bugfixes

Beitrag  Carli Sa 4 Jul 2009 - 18:10

ja das war ein Bug im .-Operator.
Müsste committed sein
es ging darum, dass ein Register nicht gesichert wurde und dann anstatt "i<31" Speichermüll von der Letzten Rechnung in ecx landet.

Carli
Admin

Anzahl der Beiträge : 1001
Anmeldedatum : 02.01.09

Nach oben Nach unten

Scriptsprache Bugfixes Empty Re: Scriptsprache Bugfixes

Beitrag  Gesponserte Inhalte


Gesponserte Inhalte


Nach oben Nach unten

Nach oben


 
Befugnisse in diesem Forum
Sie können in diesem Forum nicht antworten