如何在Visual Studio中找到堆栈跟踪?


Answers:


276

调试时,转到调试-> Windows->调用堆栈


38
==>“调试时” <==
prabhakaran 2012年

2
VS 2013中的调用堆栈从不显示任何有用的信息。最好显示出引发未处理异常的对象的调用者。有隐藏的选项可以使它有用吗?也许您可以扩展答案以提供示例。
詹姆斯

1
爱在其他类似线程中的其他人都完全错过了答案中最重要的部分。
AvetisG

很好,谢谢!在运行VS CE 2015 + IE9并调试IE9的JavaScript堆栈跟踪时,这甚至可以工作!
Alexey Volodko


39

默认的快捷键是Ctrl-Alt-C。


16
请务必注意,您必须处于“调试”模式才能查看调用堆栈窗口。
dss539 2009年

1
@ dss539我认为您已连接了调试器,它可以调试或发布版本。为调试会话加载足够的符号也很重要,否则您将获得误导/垃圾回收的堆栈。
克里斯·奥

@ChrisO-是的,我的意思是Visual Studio应该处于“调试”状态。抱歉,我可以看到我的原始措辞如何为误解留有余地。
dss539 2013年

16

您的意思是找到引发异常位置的堆栈跟踪吗?那要么是“调试/异常”,要么是更好的-Ctrl-Alt-E。为要中断的异常设置过滤器。

在捕获到异常之后,甚至还有一种方法可以重建抛出程序堆栈,但这确实令人不快。在罚球上轻松突破要容易得多。



1

将此视为当前更新(Windows 10(版本1803)和Visual Studio 2017):我无法查看堆栈跟踪窗口,并且确实找到了一个选项/菜单项来查看它。在进行进一步调查时,Windows 10似乎不提供此功能。有关更多信息,请参阅:

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

从上面的链接复制:“此功能在Windows 10版本1507和更高版本的WDK中不可用。”


这似乎真的很奇怪。有谁知道在1507版和更高版本中执行此操作的替代方法的任何想法?此功能非常有帮助...
nimble_ninja

0

对于Visual Studio 2019,快捷方式(在调试时并在断点处停止)是:

Ctrl+ Alt+ C现在您也可以使用Ctrl+L

屏幕截图很旧。这是Visual Studio 2019的一个(在调试菜单下):

Visual Studio 2019呼叫堆栈菜单选项

By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.