Точки останова не могут быть установлены на определенные строки в методе. QuickWatch не работает для некоторых переменных - PullRequest
0 голосов
/ 10 января 2020

Использование Microsoft Visual Studio Professional 2019 версии 16.4.2

Решение Конфигурация установлена ​​на Отладка В Свойствах проекта-> Построить - Оптимизировать код не проверено Расширенные настройки сборки -> Отладочная информация установлена ​​на Полный

Шаги: 1. Чистый раствор 2. Восстановить решение 3. Опубликовать sh соответствующих проектов 4. IISReset 5. Присоединить к процессу (w3wp.exe)

Проверено в Debug -> Windows -> Модули, которые "символы загружены" для dll.

Я могу устанавливать точки останова в некоторых строках, но не в других. Получение:

«Не удалось связать точку останова»

На самой следующей строке кода можно и установить точку останова, и она работает (и ломается).

Кроме того, когда я разбиваю следующую строку и пытаюсь использовать Quick Watch на billingAmountsDue, accountNumbers или User, я получаю:

"Невозможно получить значение локальной переменной или аргумента, поскольку оно недоступно по указателю этой инструкции, возможно, из-за того, что оно было оптимизировано."

    public IEnumerable<Account> GetAllAccounts()
    {
        var user = GetCurrentUser(); //Breakpoint doesn't work on these 3 lines
        var accountNumbers = GetAccountNumbersForUser(user);
        var billingAmountsDue = AsyncHelpers.RunSync(() => _billingService.GetBillingForAccounts(accountNumbers.ToArray()));

        //Breakpoint on following line works
        var accounts = user.Accounts.Join(billingAmountsDue, b => b.AccountNumber, a => a.AccountNumber, (a, b) => new Account()

1 Ответ

0 голосов
/ 10 января 2020

В Debug -> Windows -> Модули я заметил, что Optimized был "Yes" для модуля, который я пытался отладить.

Решение:

Щелкните правой кнопкой мыши по модулю и выберите Настройки символа. В разделе «Общие» выберите параметр «Suppress JIT Optimization on module load (Managed Only)».

Эту опцию также можно найти в Сервис-> Параметры-> Отладка-> Общие.

...