調試 Jmp 應用程式有一些技巧嗎?
我想這樣做的預設方法是這樣的:
使用Jmp調試器,添加斷點,讓應用程式程式碼運行並停在斷點處,然後一步步檢查發生了什麼...
當我必須調試非應用程式 JSL 程式碼時,我喜歡它能夠隨時自由地運行腳本中的任何程式碼。
例如,刪除報告窗口的模式設置,創建報告窗口,然後運行 Osl 文件中另一個位置的一些程式碼行。
對於來自 Application Builder 的應用程式也可以這樣做嗎?
1) 如何在App Builder中啟用嵌入式日誌?

2)為了調試手動生成的應用程序,我發現
myApp = JMP App();
(myApp << Get Namespace) << Show Contents;
從應用程式生成器運行應用程式時,我沒有句柄我的應用程式我可以用它來與應用程式交談。
是否有一些命令可以獲取當前應用程式的名稱空間並“滲透”代碼:
((current report() << get App() ) << get Namespace()) << include Namespace in HERE
這樣我就可以從應用程式複製程式碼片段並直接在腳本視窗中運行它們 - 直接訪問正在運行的應用程式的命名空間?
3) 如果我在 JSL 程式碼中出錯,JSL edotor 會警告我或顯示錯誤訊息,幫助我找到錯誤並修正它。
如果我打開應用程式的來源腳本並犯了一個小錯誤,當我運行程式碼時 Jmp 將崩潰<<編輯或者<<運行
有沒有機會改變原始碼,減少對我的扣分的懲罰? 在我敢於運行腳本之前,是否有可以使用的預檢查例程?
實際上對於包含的腳本來說也是一樣的 - 是否可以手動執行包含的腳本中的程式碼 - 可以存取主腳本的 HERE 命名空間?
主要腳本:
Names Default to HERE(1);
::myNamespace = localHERE(); //*)
temp =5;
include ("script_inc.jsl");包含的腳本:
///////////////////////////
// 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);
*)(顯然)這不起作用
此螢幕截圖顯示了「問題」 - 當包含在主腳本中時, script_B 知道這裡主腳本的命名空間(左側視窗的日誌)。
但單獨執行時,script_B有它自己的這裡命名空間。
就像設計的那樣:
提高效率和可重複性的基本腳本:少做多做 (2019-US-TUT-290)
……但是它使得無法直接從 script_B 運行單行進行偵錯。
-> 如何連結命名空間以允許我調試 script_B 。