2010-09-06 5 views
1

Я ищу способ получить возвращаемое значение метода через Visual Studio Debugger (используя DTE). Можно ли получить его, если я нахожусь в закрывающей скобке метода, но еще не вышел? Кроме того, было бы лучше, если бы это было возможно, не оценив функцию снова через ближайшее окно.Получение возвращаемого значения метода через DTE.Debugger без оценки метода?

ответ

1

Nope. Отладчик не имеет достаточной информации о том, как компилятор JIT сгенерировал код для возврата значения. Это сложная деталь реализации дрожания и конкретной архитектуры, для которой он создает код.

Простые типы, такие как объекты и интегральные типы, не являются проблемой, обычно это регистр EAX/RAX, стек FPU или регистр XMM0. Он становится запутанным, когда метод возвращает структуру. Это сопоставляется для регистрации того, что структура подходит, но нуждается в переполнении в временном стеке, когда структура слишком велика.

Я подозреваю, что им нужно будет много работать над метаданными, которые генерирует дрожание, чтобы получить эту работу. Вы узнаете, когда эта работа будет завершена, она станет видимой в окне Autos. Как это было раньше, в простые дни.

+1

+1, еще один вариант, который мы рассмотрели, имел промежуточный шаг в коде gen, который сохранял каждый вызов метода в стеке, который мы могли бы затем поместить в окно просмотра. Это было заброшено, хотя из-за сложности + путаницы. – JaredPar

Смежные вопросы