Problem
會開始研究InstallAnywhere的Debug方式,是因為這陣子出現許多奇奇怪怪問題;但透過code review又無法找到原因,所以希望能透過InstallAnywhere的debug log找到root cause。
How to?
針對不同的階段Build、Install、Uninstall都有對應的debug方式,我感興趣的是Install與Uninstall的方法;而我的實驗是在linux上使用silent mode。
LAX_DEBUG=true
這個方法Install與Uninstall都適用,可以透過環境變數去啟用:
LAX_DEBUG=true export LAX_DEBUG
lax.debug.all與lax.debug.level
在使用LAX_DEBUG=true方法後,無法幫助我們找到問題原因,因此深入找尋其它可能管道。透過decompiler查看IAClasses.zip的內容:
得知lax.debug.all與lax.debug.level設定可以讓我們看到更詳細的debug訊息。以下分享啟用方式: (使用這兩個參數前,LAX_DEBUG需要被設置)
Install過程
我嘗試過加在執行參數上,雖然dump出來變數內容有出現,但此debug功能沒有啟用:
./install.bin -Dlax.debug.all=true -Dlax.debug.level=4
修改Installer參數
最後我是透過修改installer達成,如下圖,於Project>JVM Settings>Installer Settings>Optional Installer Arguments加入參數:
如果設置成功,在安裝時你可以看到Setting debug level to: 4的字眼。這個功能啟用後,會產生非常多debug訊息。
Uninstall過程
在我使用Install過程的方法後,我在Uninstall資料夾下的lax檔案中,有看到以下字眼:
lax.nl.java.option.additional=-Dlax.debug.all=true -Dlax.debug.level=3
這也使得反安裝時,會顯示level 3的訊息。
除了這個方法,還有兩種方式可行。一個是直接修改Uninstall下的lax檔案,加上以下兩行:
lax.debug.all=true lax.debug.level=4
假如要調整sdterr與stdout位置,可以改以下內容:
lax.stderr.redirect=/opt/SW/Logs/err.txt lax.stdout.redirect=/opt/SW/Logs/out.txt
另外一個方是去編輯Sequence>Install中的Uninstall Launcher:
也是加上你要的參數就可以了。
留言
張貼留言