InstallAnywhere - Enable Debug Mode

會開始研究InstallAnywhere的Debug方式,是因為這陣子出現許多奇奇怪怪問題;但透過code review又無法找到原因,所以希望能透過InstallAnywhere的debug log找到root cause。

針對不同的階段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達成,如下圖,於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:

也是加上你要的參數就可以了。