Kann der JSL-Debugger in verschachtelte Funktionen oder Skripts einsteigen?Ich setze Breakpoints an meinen verschachtelten Funktionen oder Skripten, aber "einsteigen" scheint nichts zu tun.
Betreff: Kann der JSL-Debugger in verschachtelte Funktionen oder Skripte einsteigen?Ich denke, die einfache Antwort ist dann "nein".
In meinem Fall prüft/manipuliert der Benutzer den Inhalt von dt, bevor er das Dummy-Skript ausführt. Ich kann die Ausführung nicht erzwingen, bevor der Benutzer fertig ist.
Hoffentlich kann JMP in Zukunft weitere standardmäßige Debugger-Threading-Funktionen enthalten.
Betreff: Kann der JSL-Debugger in verschachtelte Funktionen oder Skripte einsteigen?@awoj ,
Ich nehme an, Sie wissen, wie Sie eine Unterbrechung festlegen, wenn Sie den Debugger ausführen, und das Problem ist Verwirrung über Ihr Skript.
Beachten Sie, dass das Ausführen oder Debuggen des von Ihnen bereitgestellten Skripts nicht das einfache Skript "Dummy-Skript" ausführt. Unten sehen Sie einen Screenshot einer Modifikation Ihres Skripts. Ihr Skript schreibt einfach eine Textzeichenfolge mit gültigem JSL-Code in die Datentabelle, aber Ihr Skript führt sie nicht aus.Fügen Sie, wie im Screenshot angezeigt, die JSL-Syntax hinzu, um das Tabellenskript „Dummy Script“ auszuführen, und legen Sie entsprechende Haltepunkte fest. Siehe die Registerkarten „Globals“ und „Log“. Der Screenshot zeigt den 2. Durchgang durch die For-Schleife, also i=1.
Ich hoffe, das hilft, Ihre Verwirrung zu beseitigen.
Betreff: Kann der JSL-Debugger in verschachtelte Funktionen oder Skripte einsteigen?Danke für die Antwort. Ich verwende JMP14 und unten ist ein einfaches Beispiel, in dem ein verschachteltes Skript nicht betreten werden kann. Der Debugger wartet nicht auf Benutzereingaben (Klicken auf das Skript) und beendet einfach die Ausführung, wenn er Zeile 3 erreicht. Wie kann man ein solches Szenario als kontinuierlichen Workflow debuggen?
dt = New Table( "Test", New Column( "Value", Numeric, "Continuous", Format( "Best", 12 ), Set Values( [1, 33, 239, 3, 4] ) ) );
dt << New Script( "Dummy Script",
For( i = 1, i <= NRows( dt ), i++,
If( dt:Value[i] < 50,
Show("Pass"),
Show("Fail");
);
);
);
Betreff: Kann der JSL-Debugger in verschachtelte Funktionen oder Skripte einsteigen?@awoj ,
Sie haben weder erwähnt, welche Version von JMP Sie verwenden, noch ein Beispielskript bereitgestellt.
Nachfolgend finden Sie ein Beispielskript, das für Kapitel 11 von JSL Companion Applications of the JMP Scripting Language, 2nd Edition, geschrieben wurde. Es verwendet ein Include() für eine benutzerdefinierte Listenfunktion. Ich kann Pausen in den Zeilen 19 und 20 setzen, wo die Funktion aufgerufen wird und der JMP-Debugger in diese enthaltene Datei springt, ich kann die lokalen Variablenwerte beobachten, Unterbrechungspunkte setzen usw. Dies ist ein einfaches Beispiel und es wurde auf JMP 12 getestet, 13 und 14.
Beachten Sie, dass bei der Anweisung Include() nichts passiert, sondern an der Stelle, an der die Funktion aufgerufen wird.
Names Default to Here(1);
Delete Symbols();
Include( "$JSL_Companion/11_LCombine_Func.jsl" );
// usage
//--- example #1 --- numeric list arguments
l1 = {1, 2, 3, 4, 5, 3, 5,7};
l2 = {2, 3, 4, 6, 7, 8};
xx=LCombine(l1, l2, "union");
yy=LCombine(l1, l2, "intersect");
show(xx,yy);
Sie müssen weitere Details angeben, wenn Sie weitere Hilfe benötigen.
Die enthaltene Skriptdatei ist angehängt.