Willkommen zum priint:comet cScript-Tracer!

Der cScript-Tracer ermöglicht eine Aufrufverfolgung der Funktionsaufrufe und des Produktaufbaues eines cScriptes. Der Tracer wird im Web-Browser Ihres Rechners gestartet und übernimmt bis zum Skriptende die Steuerung von InDesign®.

Anregungen zur Verwendung des Tracers sind jederzeit herzlich willkommen. Bitte beachten Sie aber, dass der Tracer ausdrücklich vom WERK II Support ausgenommen ist.

Um die Ausführung eines Skriptes zu verfolgen sind zwei Schritte nötig:

  1. Vorbereitung des Skriptes
  2. Aktivierung des Tracers in InDesign

Mit der folgenden Anweisung (in genau dieser Schreibweise und incl. des einen Leerzeichens!) wird der Tracer aktiviert:

#pragma debug ["Debug-Optionen" ]

Die #pragma debug Anweisung darf nicht auf der ersten Zeile des Skriptes stehen. Die Angabe der Debug-Optionen ist optional.

Für das Tracing ist eine priint:comet Entwicklerlizenz nötig und das Tracing muß in der aktuellen InDesign®-Session gestartet sein (siehe hier). Ist das Tracing nicht aktiviert oder keine Entwicklerlizenz verfügbar, wird das #pragma debug ignoriert!

Die Debug-Optionen dürfen fehlen oder leer ("") sein. Folgende Optionen werden unterstützt:

Als Breakpoints geben Sie die Zeilennummern der Skriptanweisungen an. Die Zeilennummern müssen nicht sortiert sein. Mehrere Zeilennummern werden durch Leerzeichen getrennt.

Stoppe die Bearbeitung beim Schnelldurchlauf automatisch bei den Skriptzeilen 12, 23 und 45:

#pragma debug "12 45 23"

Der Produktaufbau über productlist::establish enthält hunderte von Stopp-Möglichkeiten für den Tracer. Zum Aktivieren der Aufbau-Stopps fügen Sie in die Debug-Optionen einen Unterstring mit der Einleitung estab: ein. Um Konflikte mit den Anführungzeichen zu vermeiden, schließen Sie diesen String in einfache Anführungszeichen ein, also etwa so:

#pragma debug "12 45 23 'estab:...' "

estab: unterstützt folgende Angaben. Die einzelnen Optionen werden durch Leerzeichen (keine Kommas) getrennt. Zur besseren Lesbarkeit können Sie Zeilentrenner einfügen. Achten Sie aber darauf, dass Zeilentrenner in Strings durch ein \ am Zeilenende markiert werden müssen.

Im Beispiel stoppt der Tracer beim Produkt mit der ID 2 bei allen Previews der Aufbauverfolgung, deren Name mit 'ImportFrame' beginnt und bei allen Aufrufen der Aufbauhilfe mit der Situation 2 (kCheckSizeAfter). Zusätzlich stoppt der Schnelldurchlauf an den Zeilen 8, 91, 92 und 94.

#pragma DEBUG "\
	92 94 \
	8 \
	'estab: id 2 0 0 \"\" \
	previews \"name like <<ImportFrames%>>\" \
	buildsupport \"situation = 2\"' \
	91 \
	"

Um den cScript-Tracer in InDesign® zu aktivieren, wählen Sie das Menü Plug-ins -> Comet -> cScript-Tracer aktivieren... (Zusatzmodule statt Plug-ins in Versionen vor InDesign® 2025). Im erscheinenden Dialog geben Sie die Nummer eines freien Ports Ihres Rechners an. Über diesen Port wird der Datenverkehr zwischen InDesign® und dem cScript-Tracer im Browser abgewickelt werden. abgewickelt wird.

Bitte beachten Sie Folgendes:

  1. Der Menübefehl ist nur mit gültiger priint:comet Entwicklerlizenz aktiviert.
  2. Der gewählte Port muß unbelegt sein und bleiben!
  3. Der gewählte Port muß ungleich einem möglicherweise gewählten Port für den Python-Debugger sein.

Um den cScript-Tracer in InDesign® Server zu aktivieren, starten Sie den Server mit der Zusatz-Option:

-debugscript portNum

Auch hier gilt:

  1. Die Option "-debugscript wird nur mit gültiger priint:comet Entwicklerlizenz verwendet. Ohne Entwicklerlizenz wird die Option ignoriert.
  2. Der gewählte Port muß unbelegt sein und bleiben!
  3. Der gewählte Port muß ungleich einem möglicherweise gewählten Port für den Python-Debugger sein.

Ist der cScript-Tracer aktviert, wird automatisch jedes entsprechend markierte Skript über den eingestellten Port automatisch in Ihrem Standard-Browser geöffnet und kann von dort ausgeführt werden.

Mit dem Beginn des Debuggens bis zum Skriptende wird die Steuerung von InDesign® bzw. InDesign® Server an den Browser übergeben. InDesign ist solange durch einen nicht-schließbaren Dialog bis zum Skriptende vor manuellen Änderungen geschützt. Wird das Browserfenster vor dem Skriptende geschlossen, kann InDesign® nur noch durch Abbruch beenden werden!

Zum Start des cScript-Tracers ist eine aktive Internet-Verbindung nötig!

Folgende Browser wurden unter Mac und Windows getestet:

Im Gegensatz zu anderen Debuggern stoppt der cScript-Tracer nur bei Funktionsaufrufen. Zum Ausführen verwenden Sie die Buttons rechts oben im Browserfenster:

Hier finden Sie weitere Informationen über Breakpoints und das Tracing des Produktaufbaus.

Auf der linken Seite des Browserfensters werden die aktuellen lokalen und globalen Variablen gezeigt. Rollovers öffnen weitere Details. Hier ein Screenshot mit den Details zu gFrame:

In den Details werden die wichtigsten Informationen der jeweiligen Objekte angezeigt.

Die Berechnung und Implementierung der Details sind recht zeitaufwendig. In der aktuellen Version sind daher noch nicht alle Datentypen vollständig implementiert.

Die Details können über das kleine rote Dreieck links oben betreten werden. Images and URLs in the details can be opened in additional browser windows.

Unter der Überschrift Function Stack wird der Stapel der aktuellen Funktionsaufrufe gezeigt.

Bei Maus-Rollovers sehen Sie die jeweiligen Aufruf-Parameter der Funktionsaufrufe.

Beim Anklicken der Funktionsnamen wird das Browserfenster zum Funktionsaufruf im Skript gescrollt und die entsprechende Zeile durch kurzes Blinken hervorgehoben. Die Aufrufreihenfolge im Skript wird dadurch nicht verändert.

Bitte beachten Sie die folgenden Einschränkungen:
Kategorie Beschreibung Umsetzung geplant?
Variablen-Zuweisungen

Wert-Zuweisungen an Variablen während der Ausführung werden nicht unterstützt.

Nein
Includes

Funkionen aus Includes werden wir globale cScript-Funktionen behandelt. Es ist zur Zeit nicht möglich, in den Quelltext dieser Funkionen zu springen.

Ja
Lokale Breakpoints

Manuelles Setzen von Breakspoints zur Ausführzeit wird zur Zeit nicht unterstützt.

Ja
Nested Tracers

Geschachteltes Tracing wird nicht unterstützt. Ist ein Tracer aktiv, werden Tracing-Anforderungen weiterer Skripte ignoriert. Das bedeutet insbesondere, wenn ein Aufbau-Skript debuggt wird, werden Debug-Anforderungen aus Platzhalter-Skripten ignoriert.

Nein