Используя Visual Studio, после присоединения к процессу и нажатия кнопки Pause (Break-All), вы переключаетесь на нужный поток и используете окно Quick Watch, чтобы проверить некоторые данные, скажем
MySingletonClass.Instance.Data
Иногда я либо получаю это:
Невозможно оценить выражение, потому что текущий поток находится в режиме ожидания, ожидания или соединения
или это (при попытке просмотра определенных свойств данных):
Невозможно оценить выражение, потому что собственный кадр находится поверх стека вызовов.
Честно говоря, мне все равно, я просто хочу посмотреть данные! Я знаю, что есть разные способы обойти это, а именно:
- Установка точки останова в потоке и ожидание, пока она не пострадает (громоздко, не всегда возможно).
- Получение дампа процесса и загрузка обратно в VS (даже тогда я все еще получаю вторую ошибку)
- WinDbg
Учитывая, что вы можете видеть эти данные, если вы предположительно использовали windbg, почему мы все не можем использовать намного проще и красивее VS для проверки объектов при присоединении к процессу?