ในขณะที่การดีบักโค้ด Java สตริงในมุมมอง "ตัวแปร" และ "นิพจน์" แสดงจนถึงความยาวที่แน่นอนหลังจากที่ Eclipse แสดง "... "
มีวิธีตรวจสอบสตริงทั้งหมดหรือไม่? (สิ่งนี้ช่วยลดความเจ็บปวดของการเพิ่มคำสั่งการบันทึกสำหรับการดีบักได้ทุกที่)
ในขณะที่การดีบักโค้ด Java สตริงในมุมมอง "ตัวแปร" และ "นิพจน์" แสดงจนถึงความยาวที่แน่นอนหลังจากที่ Eclipse แสดง "... "
มีวิธีตรวจสอบสตริงทั้งหมดหรือไม่? (สิ่งนี้ช่วยลดความเจ็บปวดของการเพิ่มคำสั่งการบันทึกสำหรับการดีบักได้ทุกที่)
คำตอบ:
ในมุมมองตัวแปรคุณสามารถคลิกขวาที่บานหน้าต่างรายละเอียด (ส่วนที่แสดงเนื้อหาสตริง) และเลือกเมนูป๊อปอัพ "ความยาวสูงสุด ... " ความยาวเท่ากันนั้นใช้กับป๊อปอัพตัวตรวจสอบนิพจน์และอีกสองแห่ง
ในตัวแปรดูคุณคลิกขวาที่ตัวแปรและเลือกเปลี่ยนค่า หากตัวแปรของคุณมีขนาดใหญ่คุณต้องรอสักครู่ (ในกรณีนี้ Eclipse ไม่ตอบสนองต่อคำสั่ง) แต่ในที่สุด Eclipse จะแสดงตัวแปรของคุณทั้งหมด
"data:image/bitmap;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQE... (length: 22869)"
ฉันสามารถดูเท่านั้น ตั้งค่าตัวเลือก "ความยาวสูงสุด" ไม่ทำงานและ "เปลี่ยนค่า" ด้วย
หากคุณมีสตริงที่ยาวมาก ๆ ฉันจะใช้กลยุทธ์ที่แตกต่าง: ทิ้งมันลงในไฟล์ ฉันมีข้อมูลโค้ดที่ฉันใช้ในมุมมองดิสเพลย์ซึ่งถูกประเมินเพื่อถ่ายโอนข้อมูลไปยังไฟล์ ฉันใช้ Commons IO แต่คุณสามารถทำได้ด้วยวิธีการ JDK เท่านั้น
org.apache.commons.io.FileUtils.writeStringToFile(new java.io.File("<filename>"), <expression to evaluate>);
โดยปกติคุณจะต้องใช้ IO JAR ในการเรียนของคุณ หากคุณไม่ต้องการทำงานกับ JDK
วิธีที่ดีที่สุดในการดูค่าสตริงจากมุมมองการดีบัก eclipse มีดังนี้
1) สลับเป็นมุมมองดีบักใน Eclipse
2) เลือกตัวแปรที่ต้องการในบานหน้าต่างตัวแปร
3) คลิกขวาบนพื้นที่แสดงของบานหน้าต่างตัวแปรที่แสดงค่าและคลิกที่ความยาวสูงสุด ป้อนค่าถ่านสูงสุดใน Configure Details Pane
4) ไชโย
เมื่อดีบักเกอร์ถึงจุดที่คุณต้องการค่าสตริงเพียงพิมพ์คำสั่ง sysOut
System.out.println("The value is : \n " + query);
เลือกข้อความด้านบนคลิกขวา -> ดำเนินการ
มันจะพิมพ์ค่าบนคอนโซล
สำหรับการดีบัก javascript จาก eclipse วิธีการ "เปลี่ยนค่า" และวิธี "ความยาวสูงสุด" ทั้งคู่ล้มเหลวสำหรับฉันเพิ่มวัตถุที่ต้องการดู ( นิพจน์ ) จากนั้นคลิกขวาที่นิพจน์ที่เฝ้าดูเพื่อเลือก "โหลดค่าเต็ม"เป็นวิธีแก้ไขปัญหาเดียว ว่างานสำหรับฉัน แต่แม้แทรกนี้ที่ไม่พึงประสงค์ "\ n" ในการส่งออก
หมายเหตุ - ต้องตั้งค่า "ความยาวสูงสุด" เพื่อให้ "โหลดเต็มมูลค่า" เพื่อทำงานตามที่โหลดค่าจนถึงความยาวสูงสุด (ค่าเริ่มต้นใน eclipse คือ 10000) อ้างอิงคำตอบข้างต้นเพื่อดูวิธีตั้งค่าความยาวสูงสุด
ไม่มี "maxLength" ใน Eclipse Mars และ "ค่าการเปลี่ยนแปลง" ใช้ได้กับ "ตัวแปร" เท่านั้นไม่ใช่ "นิพจน์" ดังนั้นจึงไม่สามารถใช้งานได้สำหรับฉัน
และการแสดงออกจะถูกตัดตรงกลางไม่ใช่ตอนท้าย ฉันเดาว่าพวกเขาเปลี่ยนพฤติกรรมเริ่มต้น
สิ่งเดียวที่ใช้ได้ผลสำหรับฉันคือการขยายความกว้างของคอลัมน์ชื่อนิพจน์และคลิกนิพจน์เพื่อเลือกทั้งหมดเพื่อดูเนื้อหาแบบเต็ม
ไม่มีอะไรจากข้างต้นทำงานให้ฉันนอกจากนี้องค์ประกอบส่วนติดต่อผู้ใช้บางอย่างใน Eclipse ของฉันไม่สามารถพบได้ตามที่อธิบายไว้ ฉันใช้ STS 4.3.1
ค่าที่ฉันต้องการมีขนาดใหญ่มากมันเป็นส่วนหนึ่งของคำขอ JSON ขนาดใหญ่ วิธีแก้ปัญหาคือการใช้นิพจน์ในคอนโซล Eclipse Debug Shell และเพื่อแสดงผลสตริงย่อยของค่าทั้งหมด เนื่องจากคุณสามารถเห็นค่าบางส่วนตรวจสอบและใช้ตัวอักษรสองสามตัวสุดท้ายเป็นตำแหน่งที่จะส่งออกชิ้นถัดไปของสตริง ทำซ้ำวิธีนี้จนกว่าจะได้สิ่งที่คุณต้องการ:
String result = new String(reallyBigByteArrayValue, "UTF-8");
result.substring(result.indexOf("some-unique-text"));