2015-01-09 61 views
1

我有一個問題,我正在使用遠程日誌記錄,並且我的堆棧跟蹤被混淆。我對此做了相當多的研究,this blog可能是我發現的最有用的參考資料。然而,看着鞋尖5和6從博客,我得到的印象是StackTraceDeobfuscator可以在不添加以下到我的GWT模塊使用GWT:使用StackTraceDeobfuscator遠程記錄和去混淆堆棧跟蹤

<set-property name="compiler.stackMode" value="emulated" /> 
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" 
value="true" /> 

我寧願不設置compiler.stackMode屬性和增加我的JavaScript包的大小,但我開始懷疑這是可能的。上述屬性實際上是對我的客戶端堆棧跟蹤進行反混淆的要求嗎?有沒有其他的選擇?我想避免進行可能影響應用程序性能或安全性的更改。

謝謝!

回答

0

我提供反混淆堆棧跟蹤的初始方式涉及不情願地設置我在我的描述中提到的屬性。

<set-property name="compiler.stackMode" value="emulated" /> 
<set-configuration-property name="compiler.emulatedStack.recordLineNumbers" 
value="true" /> 

但是,這些新的編譯指令確實增加了我的Javascript的大小,並導致性能問題。當我們的一些客戶仍在使用Internet Explorer 8時,您可以在網站上執行幾項操作,導致「長時間運行腳本」彈出窗口。

我在描述中未提及的一個重要細節是在GWT升級過程中出現此問題。

之前,我們在GWT的RemoteServiceServlet的子類中使用了com.google.gwt.logging.server.StackTraceDeobfuscator。該Deobfuscator現在已被棄用,我們轉移到com.google.gwt.core.server.StackTradeDeobfuscator。事實證明,這個問題與用於從新的靜態工廠方法獲得StackTraceDeobfuscator的符號映射目錄路徑有關。一旦修復,我能夠刪除compiler.stackModecompiler.emulatedStack.recordLineNumbers屬性,同時仍然從客戶端接收到反混淆的堆棧跟蹤。

+0

我正在嘗試遵循相同的路徑,從上面提到的博客開始。然而,在第4步結束時,它提到並非所有異常都與RPC兼容(即,JavascriptException)。你如何通過RPC將異常棧跟蹤傳遞給後端以便能夠對其進行反混淆處理? – 2016-06-01 16:02:51