VS 2019 : Локальные значения пусты при отладке только в части кода

#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 снял флажок «Использовать режим управляемой совместимости», и все локальные устройства снова отображаются как ожидалось.