2012-09-05 40 views
3

我目前正在調試從戰爭文件,該文件大約100兆,在Windows 7下Tomcat上運行的類和使用「卡塔利娜JPDA啓動」開始,然後將項目掛到Eclipse調試器。日食調試變量導出或打印

我已經得到了一個地步,我調試已完全初始化類和變量在調試透視圖看起來像:

:> this 
:> referenceIds 
:> arr$ 
    len$ 
    i$ 
:> id 

其中:>應該像對着白權指示對象可以展開的三角形。

我需要與其他開發異地共享「這個」對象引用的詳細信息,他需要知道的全部內容,能夠幫助我。 但 一)有沒有展開所有選項(我了90分鐘的點擊那些擴張三角形仍然遠不及成品,它像某種形式的遞歸地獄clickathon)和 B的),即使我右鍵點擊上面,點擊「複製變量」,它並沒有給我的擴展信息,即點擊「複製變量」「這個」給了我巨大的非信息:

REDACTEDProductsDataBuilder (id=38)  
referenceIds String[5] (id=105) 
arr$ String[5] (id=105) 
len$ 5 
i$ 3 
id "4:REDACTEDUpsell" (id=117) 

我環顧四周的信息,更簡單的方法做到這一點,並沒有任何東西。我非常喜歡使用eclipse調試器,所以請原諒我,如果有明顯的答案,肯定有比在擴展三角形上單擊一天更簡單的方法嗎?如果沒有,我有其他選擇嗎?

回答

2

似乎有不是一個簡單的方法來做到這一點,因爲這將是很難Eclipse來選擇合適的表示整個對象圖,把你的系統剪貼板。

我會建議,以幫助您的調試,有問題之類的重要領域都包含在裏面的toString()表示。

或者,您可以考慮應用程序的堆轉儲,並將其發送給遠程開發人員。堆轉儲是應用程序整個內存堆的二進制表示形式,並且有很多工具可用於檢查諸如Eclipse Memory Analyzerjhat之類的工具。

+0

我們最終使用了join.me,對於這種情況非常方便。將查看堆傾倒,謝謝。 – Saf

3

您可以在有趣的類實現的方法toJSON(),所以當你在調試,您可以:

  1. 右擊有趣的變量(有趣的類的有趣的實例) d
  2. 點擊在「新的細節格式化」
  3. 添加下面的代碼片段:this.toJSON()

然後VAR可信的代表將會改變。

一般我實施toJSON()方法和Jackson LIB打印所有對象圖,象下面這樣:

String res=""; 
ObjectMapper objectMapper=new ObjectMapper(); 
objectMapper.enableDefaultTyping(ObjectMapper.DefaultTyping.NON_CONCRETE_AND_ARRAYS); 
res=objectMapper.writeValueAsString(this); 
return res; 
0

this utility實測值( 「eVars」)的是一個擴展到Eclipse變量視圖。據說有能力加載和保存變量,但我沒有嘗試過。