2010-05-20 55 views
134

在調試Java代碼,字符串的意見「變量」和「表達式」顯示只能做到一定的長度,在此之後的Eclipse顯示「...」查看完整的字符串,而調試在Eclipse

有什麼檢查整個字符串的方法? (這簡化了添加到處調試日誌記錄語句的疼痛)

+0

你在哪裏看到這種行爲?調試器的哪一部分? – skaffman 2010-05-20 13:11:17

+0

另一方面,這可能是用詞不當,因爲它可能不適用於您,但如果您使用類似java.util.logging或log4j的調試庫,則可以輕鬆地打開調試語句(使用不​​同級別的調試)打印輸出或日誌文件,它可能會給你在調試窗口中篩選字符串的優勢。只是一個想法=) – corsiKa 2010-05-20 13:23:51

回答

181

在變量視圖中,可以右鍵單擊詳細信息窗格(其中顯示的字符串內容的部分),並選擇「最大長度......」彈出式菜單。相同的長度適用於表達式檢查器彈出窗口和其他幾個地方。

enter image description here

+17

比選擇的更好的解決方案。謝謝! – Colin 2013-12-10 16:21:41

+11

很好的指出,詳細信息窗格是顯示字符串內容的部分。 – Bnrdo 2014-03-21 02:05:07

+1

如何在eclipse kepler中做到這一點?請幫助 – Foolish 2014-06-20 06:43:45

16

如果你有一個很長的字符串,我用了不同的策略:它轉儲到一個文件中。我在顯示視圖中使用了一段代碼,經過評估後,這些代碼將數據轉儲到文件中。我使用Commons IO,但您可以使用JDK only方法來完成此操作。

org.apache.commons.io.FileUtils.writeStringToFile(new java.io.File("<filename>"), <expression to evaluate>); 

當然,您需要在您的類路徑中使用Commons IO JAR來工作。如果您不這樣做,請使用JDK工作。

+3

很酷的解決方法。我個人會接受這個作爲最佳答案。警告:必須爲運行JVM的系統定義,這對遠程調試有所幫助,在這種情況下,文件將寫入遠程系統,而不是運行eclipse的工作站上。 – rexford 2015-04-14 10:47:03

+0

這是爲我工作的唯一解決方案。謝謝! – Dherik 2016-06-06 20:57:55

131

變量查看您右鍵單擊該變量並選擇更改值。如果您的變量很大,您必須等待幾分鐘(在這種情況下,Eclipse不會響應命令),但最終Eclipse會完全顯示您的變量。

+1

我只能看到''data:image/bitmap; base64,/ 9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQE ...(length:22869)「'。設置「最大長度」選項不起作用,並且「更改值」也是。 – falko 2014-07-25 14:04:24

+0

@falko「最大長度」對我來說不起作用,「更改數值」沒問題(在等待幾秒後,取決於可變長度)。 – UmbySlipKnot 2014-07-26 08:22:43

+0

至少在我的系統中,這比增加「最大長度」要慢很多*(請參閱其他答案)。 – sleske 2015-10-07 10:06:54

0

有關蝕基於JavaScript調試,「變值」的方法和「最大長度」方法都未能對我來說,加入所需對象來觀看(表達式),然後右擊觀看錶達式來選擇「Load全價值」是對我的作品的唯一解決方案,但即使這樣插入不必要的‘\ n’個輸出

注意 - 必須爲「加載全部值」設置「最大長度」,因爲它會將值加載到最大長度(默認在eclipse中爲10000)。請參閱上面的答案以瞭解如何設置最大長度。

4

當調試器到達你想要的字符串值的點,只需鍵入SYSOUT聲明

System.out.println("The value is : \n " + query); 

選擇語句以上,右點擊 - >執行

它會打印出值在控制檯上

6

,以查看從蝕調試視圖字符串值的最好方法是如下。

1)切換到調試視圖在Eclipse

2)選擇在可變窗格所需的變量。

3)可變窗格顯示區域右擊其中值被示出,並點擊最大長度。在配置詳細信息窗格中輸入最大字符值。

4)乾杯

enter image description here

+1

比接受的答案好得多。謝謝! – simon 2017-07-26 13:05:24

0

沒有 「最大長度」 在Eclipse中的火星。而且,「更改值」只適用於「變量」,而不是「表達式」,所以以上都不適用於我。

enter image description here

並且,表達被切割的中間,而不是在端。我猜他們改變了默認行爲。

對我來說唯一的工作是展開表達式名稱列的寬度,然後單擊表達式將其全部選中以查看全長內容。