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);
如果您需要更多幫助,您將需要提供更多詳細信息。
隨附的腳本文件已附加。