Gibt es einige Tricks zum Debuggen einer Jmp-Anwendung?
Ich denke, die Standardmethode hierfür ist etwa die folgende:
Verwenden Sie den Jmp-Debugger, fügen Sie Haltepunkte hinzu, lassen Sie den Anwendungscode laufen und am Haltepunkt anhalten, und überprüfen Sie dann Schritt für Schritt, was passiert ...
Wenn ich Nicht-Anwendungs-JSL-Code debuggen muss, möchte ich, dass ich jederzeit die Freiheit habe, den Code im Skript auszuführen.
Entfernen Sie beispielsweise die modale Einstellung eines Berichtsfensters, erstellen Sie das Berichtsfenster und führen Sie dann einige Codezeilen aus, die sich an einer anderen Position in der JSL-Datei befinden.
Ist dies auch mit Anwendungen von Application Builder möglich?
1) Wie aktiviere ich das eingebettete Protokoll im Application Builder?

2) Zum Debuggen manuell generierter Anwendungen habe ich gefunden
myApp = JMP App();
(myApp << Get Namespace) << Show Contents;
Beim Ausführen einer Anwendung über Application Builder habe ich kein Handle meine App über die ich mit der App sprechen kann.
Gibt es einen Befehl, um den Namespace der aktuellen App abzurufen und den Code zu „infiltrieren“:
((current report() << get App() ) << get Namespace()) << include Namespace in HERE
sodass ich Codeschnipsel aus der App kopieren und direkt in einem Skriptfenster ausführen kann – mit direktem Zugriff auf den Namespace der laufenden App?
3) Wenn ich Fehler in meinem JSL-Code mache, warnt mich der JSL-Editor oder zeigt eine Fehlermeldung an, die mir hilft, den Fehler zu finden und zu beheben.
Wenn ich das Quellskript einer Anwendung öffne und einen kleinen Fehler mache, stürzt Jmp ab, wenn ich den Code ausführe << bearbeiten oder << laufen
Gibt es eine Chance, den Quellcode zu ändern und meine Strafpunkte weniger zu bestrafen? Gibt es eine Vorabprüfungsroutine, die ich nutzen kann, bevor ich mich an die Ausführung des Skripts traue?
Eigentlich gilt das Gleiche auch für eingebundene Skripte – gibt es eine Möglichkeit, Code im eingebundenen Skript manuell auszuführen – mit Zugriff auf den HERE-Namespace des Hauptskripts?
Hauptskript:
Names Default to HERE(1);
::myNamespace = localHERE(); //*)
temp =5;
include ("script_inc.jsl");enthaltenes Skript:
///////////////////////////
// to be able to manually execute code in this file, which accesses variables of the main file,
// you need direct access to the namespace of the main file. To get this access, execute:
///////////////////////////
access Namespace(::myNamespace) // *)
Show(temp);
*) (offensichtlich) das funktioniert nicht
Diese Bildschirmaufnahme zeigt das „Problem“ – wenn script_B im Hauptskript enthalten ist, kennt es die Variablen des Hier Namensraum des Hauptskripts (Protokoll des linken Fensters).
Aber separat ausgeführt, hat script_B sein eigenes Hier Namensraum.
Es ist wie folgt gestaltet:
Grundlegende Skripterstellung für Effizienz und Reproduzierbarkeit: Weniger tun, um mehr zu tun (2019-US-TUT-290)
... aber es macht es unmöglich, einzelne Zeilen direkt aus script_B zum Debuggen auszuführen.
-> Wie kann ich die Namespaces verknüpfen, damit ich script_B debuggen kann?