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
