JSL 调试器可以单步执行嵌套函数或脚本吗?我在嵌套函数或脚本处设置断点,但“步入”似乎什么也没做。
Re: JSL 调试器可以进入嵌套函数或脚本吗?我想简单的答案是“不”。
在我的例子中,用户在运行虚拟脚本之前检查/操作 dt 的内容。 在用户完成之前,我不能强制它执行。
希望 JMP 将来可以包含更多标准的调试器线程功能。
Re: JSL 调试器可以进入嵌套函数或脚本吗?@awoj ,
我假设您知道在运行调试器时如何设置中断,而问题是您的脚本混乱。
注意运行或调试您提供的脚本不会运行简单脚本“虚拟脚本”。 下面是修改脚本的屏幕截图。 您的脚本只是写入一个文本字符串,授予有效的 JSL 代码,即数据表,但您的脚本不会运行它。如屏幕截图所示,添加 JSL 语法以运行表脚本“虚拟脚本”并相应地设置断点。 请参阅全局和日志选项卡。 屏幕截图显示了第二次通过 For 循环,即 i=1。
希望这有助于消除您的困惑。
Re: JSL 调试器可以进入嵌套函数或脚本吗?感谢您的回复。 我正在使用 JMP14,下面是一个无法进入嵌套脚本的简单示例。 调试器不等待用户输入(单击脚本),并在到达第 3 行时简单地终止执行。 如何调试连续工作流这样的场景?
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: JSL 调试器可以进入嵌套函数或脚本吗?@awoj ,
您没有提及您使用的是哪个版本的 JMP,也没有提供示例脚本。
以下是为 JMP 脚本语言的 JSL 配套应用程序第 2 版的第 11 章编写的示例脚本。 它对自定义列表函数使用 Include()。 我可以在调用函数的第 19 行和第 20 行设置中断,并且 JMP 调试器会进入该包含的文件,我可以观察局部变量值、设置断点等。这是一个简单的示例,它在 JMP 12 上进行了测试, 13 和 14。
注意,在 Include() 语句中什么都没有发生,而是在调用函数的位置发生。
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);
如果您需要更多帮助,您将需要提供更多详细信息。
随附的脚本文件已附加。