Il debugger JSL può entrare in funzioni o script nidificati?Ho impostato punti di interruzione nelle mie funzioni o script nidificati, ma "entrare in" sembra non fare nulla.
Ri: Il debugger JSL può entrare in funzioni o script nidificati?Immagino che la risposta semplice sia "no" allora.
Nel mio caso, l'utente ispeziona/manipola il contenuto di dt prima di eseguire lo script fittizio. Non riesco a forzarne l'esecuzione prima che l'utente abbia terminato.
Si spera che in futuro JMP possa includere funzionalità di threading del debugger più standard.
Ri: Il debugger JSL può entrare in funzioni o script nidificati?@awoj ,
Presumo che tu sappia come impostare un'interruzione quando esegui il debugger e il problema è la confusione sul tuo script.
Nota che l'esecuzione o il debug dello script fornito non esegue il semplice script "Script fittizio". Di seguito è riportata una schermata di una modifica del tuo script. Il tuo script scrive semplicemente una stringa di testo, a cui è stato concesso un codice JSL valido, la tabella dei dati, ma il tuo script non lo esegue.Quando viene visualizzata la schermata, aggiungi la sintassi JSL per eseguire lo script della tabella "Dummy Script" e imposta un punto di interruzione di conseguenza. Vedere le schede Globali e Registro. Lo screenshot mostra il 2° passaggio attraverso il ciclo For, ovvero i=1.
Spero che questo aiuti a chiarire la tua confusione.
Ri: Il debugger JSL può entrare in funzioni o script nidificati?Grazie per la risposta. Sto usando JMP14 e di seguito è riportato un semplice esempio in cui non è possibile eseguire l'accesso a uno script nidificato. Il debugger non attende l'input dell'utente (facendo clic sullo script) e termina semplicemente l'esecuzione quando raggiunge la riga 3. Come si può eseguire il debug di uno scenario del genere come un flusso di lavoro continuo?
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");
);
);
);
Ri: Il debugger JSL può entrare in funzioni o script nidificati?@awoj ,
Non hai menzionato quale versione di JMP stai utilizzando né fornito uno script di esempio.
Di seguito è riportato uno script di esempio scritto per il capitolo 11 di JSL Companion Applications del JMP Scripting Language, 2a edizione. Utilizza un Include() per una funzione di elenco personalizzata. Posso impostare interruzioni alle righe 19 e 20 in cui viene chiamata la funzione e il debugger JMP entra in quel file incluso, posso guardare i valori delle variabili locali, impostare punti di interruzione ecc. Questo è un semplice esempio ed è stato testato su JMP 12, 13 e 14.
Nota, non accade nulla nell'istruzione Include(), ma nella posizione in cui viene chiamata la funzione.
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);
Dovrai fornire maggiori dettagli se hai bisogno di ulteriore aiuto.
Il file di script incluso è allegato.