Debuggen mit Script Edi, nur wie??

Hier ist der ideale Ort um über Scripts und Mods für X²: Die Bedrohung zu diskutieren.

Moderators: Scripting / Modding Moderators, Moderatoren für Deutsches X-Forum

michaDom
Posts: 243
Joined: Wed, 4. Feb 04, 19:30
x3tc

Debuggen mit Script Edi, nur wie??

Post by michaDom »

Da schreibt man einen Script und will Fehler beheben oder den Verlauf verfolgen, Variablen anschauen, sprich Debuggen - nur wie ? :?

Es ist ein Debugger da --- nur das Handling macht mir etwas Sorgen.
Hat jemand damit mal gearbeitet und Erfahrung gesammelt? :oops:

Täte mir auf Tips freuen.........!! :)
Vanoblis
Posts: 61
Joined: Wed, 25. Feb 04, 03:28
x2

Post by Vanoblis »

hi
meine erfahrungen mit dem debuggen:
zunächst einige nützliche anzeigen. eine erklährung des debuggers weiter unten...
(ich hab noch nicht alles verstanden, falls ich was falsches schreibe oder ihr anderer meinung seit gebt einfach euren senf dazu )

erstens bin ich auf zwei wichtige anzeigen gestoßen, welche mir die grad laufenden tasks (bzw. scripte) angezeigen. diese anzeigen werden erst mit aktivieren des scripteditors sichtbar. die erste anzeige befindet sich im scripteditor menü , wo man auch den debugger als menupunkt hat. zu sehen, wenn man mit den bild auf/ab tasten weiter nach unten geht, ist eine übersicht über alle laufenden scripte in unserem x2 universum. die zweite wichtige anzeige ist in den einzelnen schiffemenues versteckt. am besten übers besitztümermenü (r) ein schiff mit enter auswählen und auch wieder mit bild auf/ab weiter runter gucken . da tauchen dann folgende infos auf:
(bsp Ts mit befehl "kaufe ware zum besten preis")

Script Task Infos
-------Script Task ID=0----------
PID = 164918987
Prio =0
Interrupts = enabled
IntReq = no
StackDepth = 5

Current Stack : (script at bottom runs)
1: !ship.cmd.getwarebest.pl prio=0
2: !ship.cmd.getwarebest.std prio=0
3: !trade.loop.getwarebest prio=0
4: !trade.getwareandreturnhome prio=0
5: !move.returntohomebase prio=0
6: !move.movetosector prio=0

-------Script Task ID=1----------
PID = 0 (freezed)
Prio =0
Interrupts = enabled
IntReq = no
StackDepth = 0

Current Stack : (script at bottom runs)
1: !turret.missile.defense.std

....

mit diesen zwei menüs hat man schon mal ne übersicht über die laufeneden scripte. schön um zu sehen ob aufrufe auch stattgefunden haben - oda zumindest um schneller das fehlerhafte script zu finden.

kleiner exkurs (MULTITASKING? INTERRUTING?):
euch fallen sicher die zwei undschiedlichen scriptIDs auf. und dass bei einem schiff!! - und jeder hat seinen eigenen stack :) - daraus schliesse ich dass es möglich ist zumindestens zwei scripte gleichzeitig laufen zu lassen - und die sachen mit dem interruppten muss ich mir auch noch anschaun - bin bisher noch nicht dazu gekommen. hat diesbezüglich schon jemand mal tests gemacht, bzw. erfahung gesammelt?

nun zum DEBUGGER:
wenn ich im scripteditor ein script mit "r" starte , und der debugger auf log gestellt ist, loggt er im debugger menu alle commandoaufufe vom script mit. ist er auf trace gestellt, zeigt er zusätzlich auch die verwendeten variablen und hebt die aktuell aufgeführte commandozeile grün hervor.

LOG:
Scriptname:Line:Stackdepth:Prio:PID:TaskID:Command <--- Achtung!:"Line" bezieht sich hier auf die zeilennummer des "ausgeführten codes"
!trade.buywarebest.pl:22:0:0:164918987:$amount= This -> ....
!trade.buywarebest.pl:23:0:0:164918987:...undweiterimcode....
...

TRACE:
Scriptname:Line:Stackdepth:Prio:PID:TaskID:Command
!trade.buywarebest.pl:22:0:0:164918987:$amount= This -> ....

VariableName: Datatype, Vale (interger value)
$amount: DATATYP_NULL,null,(0) <---------- hier kann man sich seine variablen und deren inhalt anschaun


zwar sind dass alles schöne erkenntnisse, jedoch funktioniert dass ganze debuggerlogging nur wenn ich das script mit "r" im scripteditormenü starte und nicht einfach wenn ein schiff das ganze ausführt - wenn jemand drauf kommt wie und ob dass geht bitte bescheid geben.

ansonten kann ich für leider nur die stupide methode empfehlen möglichst viel ins logbuch zu schreiben :)

wäre schön wenn auch andere ihre erfahrungen mitm debuggen hier reinstellen könnten

in diesem sinne
happy debugging ;)
Last edited by Vanoblis on Sat, 6. Mar 04, 17:16, edited 9 times in total.
Deepstar
Posts: 5293
Joined: Wed, 6. Nov 02, 20:31
x2

Post by Deepstar »

Also ich persönlich hab auch noch kleinere Fehler in meinem Script und würde auch gerne debuggen.. nur steig ich mit diesem Befehl nicht wirklich durch..
Wer nicht vergessen kann, der wird vergessen.

06.11.2002 - 27.05.2011

Return to “X²: Die Bedrohung - Scripts und Modding”