# #go #vscode-settings
Вопрос:
Когда я запускаю отладку dlv в VSCode, я получаю это сообщение:
Указанный пользователем параметр «dlvLoadConfig» будет проигнорирован адаптером отладки «dlv-dap».
Источник-ночное расширение Go.
dlvLoadConfig
раздел конфигурации уже стал недоступен (устарел)?
запуск.json :
"configurations": [
{
"name": "Application Server",
"type": "go",
"request": "launch",
"mode": "auto",
"program": "${workspaceFolder}/cmd/main.go",
"args": ["--config", "${workspaceFolder}/configuration/application.toml"],
"env": {
"CC":"/usr/bin/gcc",
"GOOS":"linux",
"GOARCH":"amd64",
"CGO_ENABLED":1
},
"dlvLoadConfig": {
"followPointers": true,
"maxVariableRecurse": 1,
"maxStringLen": 1024,
"maxArrayValues": 64,
"maxStructFields": -1
},
"trace": "log"
// "buildFlags": "-tags dev -ldflags '-X main.BuildDate=2021-04-28T19:38:16 03:00'"
}
]
Ответ №1:
Возможно, вам потребуется обновить конфигурацию, как указано здесь: https://github.com/golang/vscode-go/blob/master/docs/debugging.md#switching-to-legacy-debug-adapter
https://github.com/golang/vscode-go/blob/master/docs/debugging.md (из :https://github.com/golang/vscode-go/blob/master/docs/dlv-dap.md )
"go.delveConfig": {
"debugAdapter": "legacy",
}
Кстати, установка последней версии, похоже, не скопировала двоичный файл как dlv-dap (что, похоже, ожидается vscode). Я только что создал символическую ссылку на dlv (mac-osx), и она работает в режиме dlv-dap
ln -s dlv dlv-dap
Комментарии:
1. Спасибо за ссылку, описывающую эту проблему. Я постараюсь использовать dlv-dap и вернусь к наследию, когда что-то пойдет не так.
Ответ №2:
Добавление «debugAdapter» тоже работает для меня.
"debugAdapter": "legacy",
Ответ №3:
https://github.com/golang/vscode-go/blob/master/docs/debugging.md#settings Новый dlv-dap использует совершенно другой подход к загрузке данных, поэтому dlvLoadConfig больше не требуется.
Для строковых значений он использует 512 или 4K в зависимости от контекста по состоянию на август 2021 года. (512 для отображения в разделе ПЕРЕМЕННЫЕ, 1K для результатов вызова функций, 4K, если вы запрашиваете переменные из КОНСОЛИ ОТЛАДКИ или используете ЗНАЧЕНИЕ КОПИРОВАНИЯ)
Я заметил, что вы использовали maxStringLen: 1024
в своих настройках. В настоящее время мы рассматриваем возможность увеличения предела того, сколько мы показываем в разделе ПЕРЕМЕННЫЕ. Мы увеличиваем это медленно и консервативно, потому что это приводит к автоматической загрузке большого количества данных для всех переменных и может замедлить производительность отладки. Если проверки длинных строковых переменных из КОНСОЛИ ОТЛАДКИ (по требованию) недостаточно, пожалуйста, откройте новую проблему в github.com/golang/vscode-go репо.
Комментарии:
1. Я использовал
maxStringLen
параметр, чтобы увидеть полный текст переменной. Я видел во время отладки в новой версии VSCode улучшение просмотра переменных. Пример я могу видеть правильные значения карт с ключами. Спасибо. Я понял, если у меня возникнут какие-то неудобства при просмотре переменных, я дам вам знать. Я думаю, что хорошая идея состоит в том, чтобы сделать возможность в окне просмотра вручную приводить переменные к различным типам. И , конечно же, просмотр памяти всегда приветствуется.2. Приведение переменных к различным типам должно уже работать, если приведение допустимо (например, строка(b), где b — [] байт). Пожалуйста, сообщите о проблеме, если это не так.