Как напечатать полное значение строковой переменной в delve?
Я использую отладчик delve go для отладки некоторого кода. Когда я пытаюсь напечатать строковую переменную, она дает мне сокращенную версию.
(dlv) print myString
"my string...+539 more"
Как мне заставить его напечатать полную строку?
4 ответа
Возможность настройки длины напечатанных строк была недавно добавлена в delve. Чтобы увидеть полный список параметров конфигурации, запустите config -list
;
(dlv) config -list
aliases map[]
substitute-path []
max-string-len <not defined>
max-array-values <not defined>
show-location-expr false
Тот, который нас интересует, называется max-string-len
, который вы можете увидеть в настоящее время <not defined>
, Чтобы увеличить длину, например, до 1000, запустите
(dlv) config max-string-len 1000
Сейчас работает print myString
должен напечатать всю строку.
Просто добавьте к своему ответу, если вы используете функцию отладки VS Code, добавьте следующую конфигурацию в ваш settings.json
:
"go.delveConfig": {
"dlvLoadConfig": {
"maxStringLen": 1024,
},
"apiVersion": 2,
},
Добавляя к приведенным выше ответам, чтобы эти конфигурации применялись каждый раз при запуске dlv
, вы сможете найти файл конфигурации в (см. исходный код):
$HOME/.dlv/config.yml
по умолчанию в MacOS$HOME/.dlv/config.yml
по умолчанию в Linux. Если$XDG_CONFIG_HOME
установлен, то он должен быть в$XDG_CONFIG_HOME/dlv/config.yml
Например, соответствующий регион в config.yml
файл:
...
# Maximum number of elements loaded from an array.
max-array-values: 1000
# Maximum loaded string length.
max-string-len: 1000
...
Type 'help' for list of commands.
(dlv) config -list
...
max-string-len 1000
max-array-values 1000
...
Отладчик VSCode Go
Мне нужно просмотреть большие строки. Как я могу это сделать, если с
maxStringLen
не рекомендуется?Используемый устаревший адаптер
dlvLoadConfig
в качестве одноразовой настройки для всего сеанса, чтобы переопределить консервативные ограничения загрузки переменных по умолчанию dlv, предназначенные для защиты производительности инструмента. В новом адаптере отладки используется другой подход с загрузкой составных данных по запросу и обновленными ограничениями строк, смягченными при взаимодействии с отдельными строками. В частности, если новое ограничение по умолчанию в 512, применяемое ко всем строковым значениям на панели переменных, недостаточно, вы можете воспользоваться большим ограничением в 4096 с помощью одного из следующих способов:
- Наведите курсор на переменную в исходном коде
Copy as Expression
запросить строку через REPL в панели DEBUG CONSOLECopy Value
в буфер обменаПожалуйста, откройте вопрос , если этого недостаточно для вашего варианта использования или если у вас есть дополнительные отзывы.