#visual-studio-2019 #visual-studio-debugging
Вопрос:
Я пытаюсь отладить, как всегда, в VS 2019. Недавно, по какой-то причине, когда я нажимаю точку останова в определенных файлах .cs, окно Locals пустое. Однако в других файлах доступны местные пользователи! Когда я использую Немедленное окно в файлах, где локальные файлы пусты, я получаю «Не удается оценить выражение». Но та же команда в других частях кода работает.
Контекст:
- Проект представляет собой библиотеку C# (dll), которая загружается в качестве подключаемого модуля в другом приложении (Revit).
- Файл pdb находится в том же каталоге, что и dll
- В проекте используется Фоди Уивер. Однако я использовал его раньше, и у меня не было проблем с отладкой.
- Дополнительные параметры сборки следующие:
- Я подключаюсь к процессу, используя Отладку > Прикрепить к процессу и опцию Автоматически:
- Я подключаюсь в режиме отладки, и библиотека dll также создается в режиме отладки.
- Опция «Оптимизировать код» снята.
- Вещи, которые я пробовал:
- Включен режим «Использовать управляемую совместимость»
- Включено «Подавление JIT-оптимизации при загрузке модуля»
- Включено «Только мой код»
- Удаление точек останова и повторное создание
- Очищающий раствор и восстановление
- Перезапуск Visual Studio
- Запуск Visual Studio в качестве администратора
- Обновление Visual Studio до последней версии
- Перезагрузка моего компьютера
Обновить:
Я попытался провести рефакторинг и разделить файл, в котором не отображаются локальные файлы, на два файла. К моему удивлению, теперь местные жители отображаются как в файле, где они не отображались раньше, так и в новом файле. Однако показанные значения по-прежнему странные. Тип объектов отображается как float {class}
, и я не могу развернуть, чтобы увидеть их свойства. Смотрите скриншот ниже из местных жителей, отображаемый в новом файле:
Комментарии:
1. Если вы установите точки останова в других частях кода, где были доступны локальные, будут ли на этот раз доступны локальные?
2. Я не уверен, что понимаю ваш вопрос, но да, местные жители появляются в некоторых файлах, когда я достигаю точки останова, но не в других файлах.
Ответ №1:
Так что в моем случае проблема заключалась в программном обеспечении для защиты от вирусов под названием Cylance, которое я установил. Я изменил его настройки для мониторинга и в настройках отладки VS снял флажок «Использовать режим управляемой совместимости», и все локальные устройства снова отображаются как ожидалось.