Eclipse uygulamasında hata ayıklarken tam dizeleri görüntüleme


166

Java kodunda hata ayıklarken, "Değişkenler" ve "İfadeler" görünümlerindeki dizeler yalnızca belirli bir uzunluğa kadar görünür ve ardından Eclipse "..."

Tüm dizeyi incelemenin bir yolu var mı? (Bu, her yerde hata ayıklamak için günlük ifadeleri eklemenin acısını hafifletir)


bu davranışı nerede görüyorsun? hata ayıklayıcının hangi kısmı?
skaffman

Yan notta bu yanlış adlandırma olabilir, çünkü sizin için işe yaramayabilir, ancak java.util.logging veya log4j gibi bir hata ayıklama kitaplığı kullanırsanız, hata ayıklama ifadelerinizi (farklı hata ayıklama düzeyleri ile) kolayca çıktıları veya günlük dosyaları ve hata ayıklama penceresindeki dizeleri eleme kenar vermeyebilir. Sadece bir düşünce =)
corsiKa

Yanıtlar:


225

Değişkenler görünümünde Ayrıntılar bölmesine (dize içeriğinin görüntülendiği bölüm) sağ tıklayıp "Maks. Uzunluk ..." açılır menüsünü seçebilirsiniz. Aynı uzunluk ifade denetçisi açılır penceresi ve diğer birkaç yer için de geçerlidir.

resim açıklamasını buraya girin


17
Seçilen çözümden çok daha iyi bir çözüm. Teşekkür ederim!
Colin

13
Ayrıntılar Bölmesi'nin dize içeriğinin görüntülendiği bölüm olduğunu belirtmek iyi olur.
Bnrdo

1
Tutulma keplerinde nasıl yapılır? Pls yardım
Aptal

1
İyi haber, bu değişikliğin aynı zamanda bir değişkenin üzerine geldiğinde görüntülenen uzunluğu "Görünür" penceresi veya "İfadeler" görünümünde inceleyerek ve "Görüntü" görünümünde değerleri gösterdiği gibi görünüyor.
Steve Chambers

1
Doğru çözümü güncelledim (daha önce kabul edilen, gerçekten eski Eclipse sürümleri için tek çözüm).
ragebis15

134

Gelen Değişkenler sizi görmek değişkene sağ tıklayın ve Değiştir değerini . Değişkeniniz büyükse, birkaç dakika beklemeniz gerekir (bu durumda Eclipse komutlara yanıt vermez), ancak sonunda Eclipse değişkeninizi tamamen gösterecektir.


2
Sadece görebiliyorum "data:image/bitmap;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQE... (length: 22869)". "Maks. Uzunluk" seçeneğini çalışmaz ve "Değeri değiştir" seçeneğini de ayarlayın.
falko

@falko "Maks. Uzunluk" benim için çalışmadı, "Değeri değiştir" tamam (değişken uzunluğa bağlı olarak birkaç saniye bekledikten sonra).
Umberto

Sistemimde En azından, bu ölçüde (diğer yanıt bakın) daha yavaş "Maksimum Uzunluğunu" arttırmada kullanılabilir.
sleske

güneş tutulması senin fikrin hakkında pek mutlu değil .. Ben bunu denedim ve şimdi tutulması herhangi bir yanıt için 30mins beri bekliyorum .. Buuut: Bu işe yarıyor gibi görünüyor;)
Joshit

22

Gerçekten uzun bir dizeniz varsa, farklı bir strateji kullanıyorum: bir dosyaya dökün. Verileri bir dosyaya dökmek için değerlendirilen Görüntü görünümünde kullandığım bir kod pasajı var. Commons IO kullanıyorum, ancak sadece JDK yöntemleriyle yapabilirsiniz.

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

Doğal olarak, bunun çalışması için sınıf yolunuzda Commons IO JAR'a ihtiyacınız olacak. Eğer yapmazsanız, JDK çalışmasına başvurunuz.


5
havalı geçici çözüm. Şahsen bunu en iyi cevap olarak kabul ediyorum. Dikkat: <dosya adı>, JVM'nin çalıştığı sistem için tanımlanmalıdır, bu da uzaktan hata ayıklama yaparsanız fark yaratır; bu durumda dosya, tutulmanın çalıştığı iş istasyonuna değil, uzak sisteme yazılır .
rexford

18

Eclipse hata ayıklama görünümünden bir String değerini görüntülemenin en iyi yolu aşağıdaki gibidir.

1) Eclipse'te hata ayıklama görünümüne geçin

2) Değişken bölmesinde istediğiniz değişkeni seçin.

3) Değerin gösterildiği değişken bölmenin görüntü alanına sağ tıklayın ve Maks Uzunluk üzerine tıklayın. Ayrıntıları Yapılandır Bölmesine maksimum karakter değerini girin.

4) Şerefe

resim açıklamasını buraya girin


1
Bu grafiksel açıklama gerçekten yararlıdır. +1
Bhavin Shah

3

Hata ayıklayıcı, String değerini istediğiniz noktaya ulaştığında, sadece bir sysOut deyimi yazın

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

Yukarıdaki ifadeyi seçin, sağ tıklayın-> Yürüt

Konsoldaki değeri yazdıracaktır


0

Tutulmada javascript tabanlı hata ayıklama için, "değeri değiştir" yöntemi ve "Maks. Uzunluk" yöntemi benim için başarısız oldu, izlemek için gerekli nesneyi ekledi ( İfadeler ) ve ardından "Tam Değeri Yükle" yi seçmek için izlenen ifadeyi Sağ Tıklatma tek çözümdür bu benim için çalışıyor, ancak bu bile çıktıya istenmeyen "\ n" ekliyor .

Not - Değerleri maksimum uzunluğa kadar yüklediğinden "Tam Değeri Yükle" işlevinin çalışması için "Maksimum uzunluk" ayarlanmalıdır (tutulmada varsayılan 10000'dir). Maksimum uzunluğun nasıl ayarlanacağını görmek için yukarıdaki cevaba bakın.


0

Eclipse Mars'ta "maxLength" yoktur. Ve "değeri değiştir" sadece "Değişkenler" ile çalışır, "İfadeler" ile çalışmadığından, yukarıdakilerin hiçbiri benim için çalışmaz.

resim açıklamasını buraya girin

Ve ifade, sonunda değil, ortada kesilir. Sanırım varsayılan davranışı değiştirdiler.

Benim için çalışan tek şey, ifade adı sütununun genişliğini genişletmek ve tüm uzunluğu seçmek için tümünü seçmek için ifadeyi tıklamaktır.


0

Yukarıdakilerden hiçbir şey benim için işe yaramadı, ayrıca, Eclipse'imdeki bazı kullanıcı arabirimi öğeleri açıklandığı gibi bulunamıyor. STS 4.3.1 kullanıyorum.

Ihtiyacım değer gerçekten büyüktü, büyük bir JSON isteğinin bir parçası. Çözüm Eclipse Debug Shell konsolunda bir ifade kullanmak ve tüm değerin alt dizesini çıktılamaktır. Kısmi değeri görebildiğiniz için, değeri inceleyin ve son birkaç değişmezi dizenin bir sonraki parçasını çıkarmak için konum olarak kullanın. İhtiyacınız olanı elde edene kadar bu yaklaşımı tekrarlayın:

String result = new String(reallyBigByteArrayValue, "UTF-8");
result.substring(result.indexOf("some-unique-text"));
Sitemizi kullandığınızda şunları okuyup anladığınızı kabul etmiş olursunuz: Çerez Politikası ve Gizlilik Politikası.
Licensed under cc by-sa 3.0 with attribution required.