Как найти трассировку стека в Visual Studio?

Ответы:

277

Во время отладки , перейдите в Debug -> Windows -> Call Stack

cdonner
источник
38
==> «во время отладки» <==
prabhakaran
2
Стек вызовов в VS 2013 никогда не показывает ничего полезного. Было бы неплохо показать вызывающим объектам, которые выдают необработанное исключение. Есть ли скрытая опция, чтобы сделать это полезным? Возможно, вы можете расширить свой ответ, чтобы привести примеры.
Джеймс
1
Любите, как все остальные в других темах, подобных этому, полностью пропустили САМУЮ важную часть ответа.
AvetisG
Хорошо, спасибо! Это работает даже при запуске VS CE 2015 + IE9 и отладке трассировки стека JavaScript IE9!
Алексей Володько
130

Во время отладки , когда вы достигли точки останова .

CTRL+ ALT+C

введите описание изображения здесь

CharithJ
источник
16
+1 за картинку = D (мне нравится, когда кто-то ставит принуждение, чтобы сделать скриншот)
Мишель Айрес
39

Сочетание клавиш по умолчанию - Ctrl-Alt-C.

Брайан Расмуссен
источник
16
Важно отметить, что вы должны быть в режиме «отладки», чтобы увидеть окно стека вызовов.
dss539
1
@ dss539 Я думаю , что у вас есть отладчик прилагается , он может либо отладки или выпуска сборки. Также важно, чтобы у вас было достаточно символов, загруженных для сеанса отладки, иначе вы получите вводящие в заблуждение / мусорные стеки вызовов.
Крис
@ChrisO - Да, я имел в виду, что Visual Studio должен находиться в состоянии «отладки». Извините, я вижу, как моя оригинальная формулировка оставляет место для неправильной интерпретации.
dss539 12.12.13
16

Вы имеете в виду нахождение трассировки стека местоположения сгенерированного исключения ? Это либо Отладка / Исключения, либо лучше - Ctrl-Alt-E. Установите фильтры для исключений, которые вы хотите разбить.

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

Офек Шилон
источник
5

Использование окна стека вызовов

Чтобы открыть окно Call Stack в Visual Studio, в меню «Отладка» выберите «Windows»> «Call Stack». Чтобы установить локальный контекст для конкретной строки в отображении трассировки стека, дважды щелкните первый столбец строки.

http://msdn.microsoft.com/en-us/library/windows/hardware/hh439516(v=vs.85).aspx

Кумар Маниш
источник
1

Рассматривайте это как текущее обновление (Windows 10 (версия 1803) и Visual Studio 2017): мне не удалось просмотреть окно трассировки стека и я нашел пункт / пункт меню для его просмотра. При дальнейшем расследовании кажется, что эта функция недоступна в Windows 10. Для получения дополнительной информации, пожалуйста, обратитесь к:

https://docs.microsoft.com/en-us/windows-hardware/drivers/debugger/viewing-the-call-stack-in-visual-studio

Скопировано по приведенной выше ссылке: «Эта функция недоступна в Windows 10, версии 1507 и более поздних версиях WDK».

Vin
источник
Это кажется действительно странным. У кого-нибудь есть идеи альтернативного способа сделать это в версии 1507 и позже? Эта функция очень полезна ...
nimble_ninja
0

Для Visual Studio 2019 ярлык (при отладке и остановке на точке останова) :

Ctrl+ Alt+ Cи теперь вы также можете использовать Ctrl+L

Скриншот довольно старый. Вот один для Visual Studio 2019 (в меню отладки):

Visual Studio 2019 Опция меню стека вызовов

Brax
источник