Перегляд повних рядків під час налагодження в Eclipse


166

Під час налагодження Java-коду, рядки в представленнях "Змінні" та "Вирази" відображаються лише до певної довжини, після чого Eclipse показує "..."

Чи є спосіб перевірити весь рядок? (Це полегшує біль додавання операторів реєстрації для налагодження скрізь)


де ти бачиш таку поведінку? яка частина налагоджувача?
скафман

Зі сторони, це може бути помилковим, оскільки це може не працювати для вас, але якщо ви використовуєте налагоджувальну бібліотеку на зразок java.util.logging або log4j, ви можете легко перетворити ваші заяви про налагодження (з різними рівнями налагодження) у роздруківки або реєстраційні файли, і це може дати вам перевагу, що просіювання рядків у вікні налагодження не може. Просто думка =)
corsiKa

Відповіді:


225

У вікні Змінні ви можете натиснути правою кнопкою миші на панелі Деталі (розділ, де відображається вміст рядка) та вибрати спливаюче меню "Максимальна довжина ...". Така ж довжина стосується спливаючого вікна інспектора виразів та кількох інших місць.

введіть тут опис зображення


17
Шлях кращий за рішення, ніж обраний. Дякую!
Колін

13
Добре зазначити, що Панель деталей - це розділ, де відображається вміст рядка.
Bnrdo

1
Як це зробити в затемненому кеплері? Pls help
Дурний

1
Хороша новина в тому, що ця зміна також впливає на довжину, що відображається при наведенні на змінну, огляді у вікні "Перевірити" або "Вирази" та відображенні значень у вікні "Дисплей".
Стів Чемберс

1
Я оновив правильне рішення (одне прийняте раніше було єдиним рішенням для справді старих версій Eclipse).
ragebisбув

134

У вікні " Змінні " ви клацніть правою кнопкою миші змінну і виберіть Змінити значення . Якщо ваша змінна велика, вам доведеться почекати кілька хвилин (у цьому випадку Eclipse не відповідає на команди), але врешті-решт Eclipse покаже вашу змінну цілком.


2
Я бачу лише "data:image/bitmap;base64,/9j/4AAQSkZJRgABAQAAAQABAAD/2wBDAAEBAQEBAQEBAQEBAQEBAQE... (length: 22869)". Установити параметр "Максимальна довжина" не працює, а також "Змінити значення".
falko

@falko "Максимальна довжина" не працювала для мене, "Змінити значення" було нормально (зачекавши кілька секунд, залежно від змінної довжини).
Умберто

Принаймні, у моїй системі це значно повільніше, ніж збільшення "Максимальної довжини" (див. Іншу відповідь).
sleske

затемнення не дуже раді вашій ідеї .. Я спробував це, і я чекаю з 30 хвилин зараз, щоб отримати будь-яку відповідь затемнення .. Буу: Це, здається, працює;)
Joshit

22

Якщо у вас дійсно довгий рядок, я використовую іншу стратегію: скиньте його у файл. У мене є фрагмент коду, який я використовую у вікні "Дисплей", який оцінюється для скидання даних у файл. Я використовую Commons IO, але ви можете це робити лише методами JDK.

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

Зрозуміло, для роботи вам знадобиться Commons IO JAR у вашому класі. Якщо цього немає, вдайтеся до роботи JDK.


5
крутий спосіб вирішення. Я особисто сприйняв би це як найкращу відповідь. Caveat: для системи, де працює JVM, слід визначити <ім'я файлу>, що має значення, якщо ви віддалено налагоджуєте. У цьому випадку файл буде записаний на віддаленій системі, а не на робочій станції, де працює затемнення .
рексфорд

18

Найкращий спосіб переглянути значення String з виду налагодження eclipse - це нижче.

1) Переключіться на режим налагодження в Eclipse

2) Виберіть потрібну змінну в області змінної.

3) Клацніть правою кнопкою миші на області відображення змінної області, де відображається значення, і натисніть на Максимальна довжина. Введіть максимальне значення char в області налаштування деталей.

4) Ура

введіть тут опис зображення


1
Це графічне пояснення дуже корисне. +1
Бхавін Шах

3

Коли налагоджувач досягне точки, де потрібно значення String, просто введіть оператор sysOut

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

Виберіть наведене вище твердження, клацніть правою кнопкою миші-> Виконати

Це буде друкувати значення на консолі


0

Для налагодження на основі Javascript на затемнення, метод "зміни значення" та метод "Максимальна довжина" для мене не вдався, додавши потрібний об'єкт для перегляду ( вирази ), а потім правою клацанням правою кнопкою миші виберіть "Завантажити повне значення" - єдине рішення це працює для мене, але навіть це вставляє небажані "\ n" у висновку .

Примітка - "Максимальна довжина" повинна бути встановлена ​​для того, щоб "Завантажити повне значення" для роботи, оскільки він завантажує значення до максимальної довжини (за замовчуванням - 10000). Дивіться вище відповідь, щоб побачити, як встановити Максимальну довжину.


0

У Марку затемнення немає "maxLength". І "значення зміни" працює лише з "Змінні", а не з "Вираженнями", тому жоден з перерахованих вище не працює для мене.

введіть тут опис зображення

І, вираз вирізаний посередині, а не в кінці. Я думаю, вони змінили поведінку за замовчуванням.

Єдине, що для мене працює, - це розширити ширину стовпця імені виразу та натиснути вираз, щоб вибрати його все, щоб побачити вміст на повну довжину.


0

Ніщо з вищезгаданого не працювало для мене, більше того, деякі елементи інтерфейсу користувача в моєму Eclipse не можна знайти як описано. Я використовую STS 4.3.1.

Значення, яке мені було потрібно, було справді великим, воно є частиною величезного запиту JSON. Обхід полягає в тому, щоб використовувати вираз на консолі Eclipse Debug Shell і виводити підрядку всього значення. Оскільки ви можете бачити часткове значення, огляньте його та використовуйте останні кілька літералів як позицію для виведення наступного фрагмента рядка. Повторюйте цей підхід, поки не отримаєте те, що вам потрібно:

String result = new String(reallyBigByteArrayValue, "UTF-8");
result.substring(result.indexOf("some-unique-text"));
Використовуючи наш веб-сайт, ви визнаєте, що прочитали та зрозуміли наші Політику щодо файлів cookie та Політику конфіденційності.
Licensed under cc by-sa 3.0 with attribution required.