[dss-developer] Script debugging

Sebastian Scholz digitalstrom at sunshine-studios.org
Thu Apr 28 22:36:06 CEST 2011


Hallo Dieter


> Welche Möglichkeiten gibt es, ein Script zu debuggen?
> (ich spreche beispielsweise mal von einem Script wie /usr/share/dss/add-ons/myapp/myapp.js, wenn ich darin Änderungen ausprobiert habe)

Momentan gibt es noch keinen richtigen Debugger. Du wirst also auf
einfache Logausgaben zurückgreifen müssen.


> Eine primitive Methode wäre mit print().
> Das wiki-Doc "DSS Scripting: Getting Started" weist darauf hin:
> 
> 	When you watch the output of the dSS, you should now see the following...
> 
> sagt aber nicht, wie und wo man diesen Output sehen kann.

Die Ausgabe ist in der Standard-Logdatei des dSS zu sehen. Auf dem dSS11
ist dies unter /var/log/dss/dss.log. Alternativ kann man natürlich auch
die Logger Klasse verwenden [1].

> Und wie/wo sieht man am einfachsten, wenn das Script Syntaxfehler enthält?

Am besten ist es die Syntaxfehler gleich zu vermeiden. Bei normalen
JavaScript (ohne die Erweiterungen des dSS) hilft ja oft schon der
Editor durch die Syntaxhervorhebung. Ansonsten gibt es JavaScript
Validatoren, wie zum Beispiel JSLint [2].

Wenn sich doch mal ein Fehler eingeschlichen haben sollte, zeigt der dSS
dies in seiner Logdatei an (/var/log/dss/dss.log auf dem dSS11).
Dazu ein kurzes Beispiel. Ich habe die Datei
/usr/share/dss/add-ons/myapp/myapp.js um die Zeile "var myEvent = new
Event();" erweitert. Natürlich ist die Syntax falsch. In der Logdatei
steht nach dem Ausführen des Scripts:

[2011-04-28 22:21:40][Error][System] JS: event_construct: (empty name)
[2011-04-28 22:21:40][Error][System]
EventInterpreterPluginJavascript::handleEvent:Caught event while
running/parsing script '/usr/share/dss/add-ons/myapp/myapp.js'. Message:
Error executing script

Das hilft beim Eingrenzen des Fehlers recht gut weiter.


> Geht anspruchsvolleres Debuggen überhaupt auf einem dSS? (Oder braucht es dafür eine andere Umgebung, wie z.B. einen auf dem lokalen Rechner kompilierten dSS?)

Ich denke schon, dass man direkt auf dem dSS11 arbeiten kann. Ob man
sich den dSS noch selbst kompilieren möchte, ist sicher Geschmackssache.


[1]
http://developer.digitalstrom.org/redmine/projects/dss/wiki/Scripting_inside_the_dSS#Logger
[2] http://www.jslint.com/

Gruss
Sebastian



More information about the dss-developer mailing list