¿Puede el depurador JSL entrar en funciones anidadas o scripts?Establezco puntos de interrupción en mis funciones o scripts anidados, pero "entrar" parece no hacer nada.
Re: ¿Puede el depurador JSL entrar en funciones anidadas o scripts? @awoj ,
No mencionó qué versión de JMP está utilizando ni proporcionó un script de ejemplo.
A continuación se muestra un script de ejemplo escrito para el capítulo 11 de JSL Companion Applications of JMP Scripting Language, 2nd Edition. Utiliza un Include () para una función de lista personalizada. Puedo establecer saltos en las líneas 19 y 20 donde se llama a la función y el depurador JMP entra en ese archivo incluido, puedo ver los valores de las variables locales, establecer puntos de corte, etc. Este es un ejemplo simple y se probó en JMP 12, 13 y 14.
Tenga en cuenta que no sucede nada en la instrucción Include (), sino en la ubicación donde se llama a la función.
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);
Deberá proporcionar más detalles si necesita más ayuda.
Se adjunta el archivo de script incluido.
Re: ¿Puede el depurador JSL entrar en funciones anidadas o scripts?Gracias por la respuesta. Estoy usando JMP14 y a continuación hay un ejemplo simple en el que no se puede ingresar a un script anidado. El depurador no espera la entrada del usuario (haciendo clic en el script) y simplemente finaliza la ejecución cuando llega a la línea 3. ¿Cómo se puede depurar un escenario como un flujo de trabajo 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");
);
);
);
Re: ¿Puede el depurador JSL entrar en funciones anidadas o scripts? @awoj ,
Supongo que sabe cómo establecer un descanso cuando ejecuta el depurador y el problema es la confusión sobre su secuencia de comandos.
Tenga en cuenta que ejecutar o depurar el script que proporcionó no ejecuta el script simple "Dummy Script". A continuación se muestra una captura de pantalla de una modificación de su secuencia de comandos. Su script simplemente escribe una cadena de texto, se le otorga un código JSL válido, la tabla de datos, pero su script no lo ejecuta. A medida que se muestra la captura de pantalla, agregue la sintaxis JSL para ejecutar el script de tabla "Dummy Script" y establezca los puntos de interrupción en consecuencia. Vea las pestañas Globals y Log. La captura de pantalla muestra la segunda pasada a través del ciclo For, es decir, i = 1.
Espero que eso ayude a aclarar tu confusión.
Re: ¿Puede el depurador JSL entrar en funciones anidadas o scripts?Supongo que la respuesta simple es "no" entonces.
En mi caso, el usuario inspecciona / manipula el contenido de dt antes de ejecutar el script ficticio. No puedo forzarlo a ejecutarse antes de que el usuario haya terminado.
Esperemos que JMP pueda incluir más funciones estándar de subprocesamiento de depurador en el futuro.