Отладка по сравнению с 2010 годом — откуда вызывается метод?

#c# #visual-studio-2010 #debugging #callstack

#c# #visual-studio-2010 #отладка #callstack

Вопрос:

В C #, по сравнению с 2010 годом, есть ли сочетание клавиш, чтобы увидеть, откуда была достигнута точка останова при отладке?

Например, если у меня есть точка останова в методе с именем myMethod(), и она была сбита, как узнать, из какой строки она была вызвана?

Комментарии:

1. статически, то есть без отладки, Resharper 6 имеет отличные параметры, позволяющие точно показать, откуда могут исходить вызовы. IIRC VS2010 должен иметь аналогичную функцию изначально, но я не могу сказать прямо сейчас, так как я на VS2008

Ответ №1:

Вы можете посмотреть на «Стек вызовов». В VS перейдите к Debug > Windows> Call Stack. В режиме отладки стек вызовов покажет, какие методы были вызваны для достижения вашей точки останова.

Ответ №2:

Если вы откроете окно стека вызовов, вы сможете увидеть цепочку вызовов методов, ведущих к текущей строке.

Если у вас есть одна из более популярных версий Visual Studio, вы также можете взглянуть на Debugger Canvas.

Ответ №3:

Недостаточно ли окна стека вызовов?

Ответ №4:

Вы можете посмотреть на стек вызовов, который покажет вам, откуда поступил вызов метода, его можно открыть, перейдя в пункт меню Debug => Windows, когда ваше приложение запущено, или нажав Ctrl D, C.

Ответ №5:

Вы ищете весь стек вызовов?

В этом случае вы можете попробовать это, когда будет достигнута точка останова: — В меню Debug выберите Windows, а затем нажмите Call Stack.

Ответ №6:

В простых случаях это будет показано в окне «Стек вызовов».

Если компилятор использовал оптимизацию хвостового вызова или встраивание метода, это может дать неожиданный результат. Но это не должно происходить во время отладки, потому что это (по умолчанию) отключает эти оптимизации.

yield -итераторы и async методы показывают, откуда они были возобновлены, а не откуда они были первоначально вызваны.