Как увидеть переменную в вызывающей функции в visual studio? - PullRequest
2 голосов
/ 31 марта 2010

Кто-нибудь знает, как смотреть переменную в вызывающей функции. Например: C #:

void fn a()
{
int myVar=9;
b();
}

b()
{
Throw new Exception();
}

Как я могу посмотреть myVar, когда получаю исключение в функции b ?? У меня действительно большая рекурсивная функция с циклом внутри, и я получаю исключение за одну итерацию. Я не знаю, к какой итерации он относится к $% ^ & * (. То, что я сделал, - продвинул свою переменную с переменным значением в глобальный, чтобы я мог наблюдать их где угодно. Однако я не думаю, что это хорошая идея только для отладки .

Спасибо всем!

Ответы [ 2 ]

7 голосов
/ 31 марта 2010

Вам необходимо использовать Окно стека вызовов .

Просто выберите уровень стека на следующий уровень вверх, и переменная должна теперь находиться в вашем окне Locals .

Также Остановка на исключениях первого шанса также может помочь.

1 голос
/ 31 марта 2010

Вы можете использовать Проводник стека, чтобы перейти к кадру стека (в режиме отладки и в режиме паузы) и наблюдать за значениями. Stack Explorer отображает все вызовы, ведущие к текущему (тот, в котором вы сделали паузу), и если вы дважды щелкнете по нему, он перейдет к месту, где он вызывает метод «под ним» (фактически над ним в проводнике). .)

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

Редактировать: По-видимому, это называется Call Stack Window, используйте его каждый день и не знаете, как оно называется - смеется.

...