Отладка VS 2010 - откуда вызывается метод? - PullRequest
4 голосов
/ 07 ноября 2011

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

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

Ответы [ 6 ]

9 голосов
/ 07 ноября 2011

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

3 голосов
/ 07 ноября 2011

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

Если у вас есть одна из самых изящных версий Visual Studio, вы также можете взглянуть на Отладочный холст .

1 голос
/ 07 ноября 2011

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

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

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

1 голос
/ 07 ноября 2011

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

В этом случае вы можете попробовать это при достижении вашей точки останова: - В меню «Отладка» выберите Windows, а затем нажмите «Стек вызовов».

1 голос
/ 07 ноября 2011

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

1 голос
/ 07 ноября 2011

Разве не окно стека вызовов достаточно?

...