在VB.net中,我知道您可以使用堆栈跟踪来获取导致异常的函数调用层次结构。在Visual Studio中调试时,如何查看IDE中的函数调用层次结构/堆栈?
不过,我也知道,如果你正在调试并生成异常,您可以直接在IDE中查看此信息...(如果你有正确的版本或设置?)
允许我解释:
说我写的子程序如下:
Public Shared Sub DoSomethingFoolish()
Dim x As integer = 0
Dim y As integer = 1/i 'can't do this
End Sub
如果我在调试模式下运行它,将执行不好线的时候,我会得到一个错误,和调试将停止。坏线将突出显示,并且我可以查看哪些错误是(除数为零,在这种情况下)
此行会强调:
Dim y As integer = 1/i 'can't do this
(这是我目前)
但是,可以说我有5个位置在我的程序中,我打电话给DoSomethingFoolish()。
我知道有一种方式,你可以遍历你的方式调用heirarchy。
防爆,呼叫可能是从这里取得:
Public Shared Sub MaybeDoSomethingFoolish()
If DareIActAFool = True Then
DoSomethingFoolish()
End If
End Sub
而且通过遍历层次结构,我可以用什么线在这个子程序造成的错误,它会被高亮显示,以及:
DoSomethingFoolish()
(我不是现在得到这个信息,但我没有在以前的安装)
从那里,我可以看看MaybeDoSomethingFoolish()从哪里调用,等等,直到我达到了各种类型的“起点”,即按钮单击事件或表单加载事件。 (我只希望从我写的代码调用层次结构/堆栈跟踪。)
我知道有办法在IDE中查看这一点,因为我能够做到这一点在几个星期前。我最近在我的工作机器上升级到Windows 7。我想知道为什么我失去了这种能力。
这是我可以改变的地方吗?
我给了Visual Studio的劣质版本吗? (我有VS 2010专业版现在)
我道歉,如果这是一个愚蠢的问题,但是当我试图搜索互联网的答案,所有的我发现了一堆人在谈论这件事情:
Dim ST As New StackTrace()
msgbox(ST.ToString())
这不是我正在寻找的。我可能使用了错误的关键字。
我提到的调试模式允许您查看基本相同的信息,但在IDE中正确,它不需要插入任何代码,也不需要我通读堆栈跟踪信息中的文本并在源代码中手动导航。这是点,点击。
它'调试>窗口>调用Stack'或'按Ctrl + L'。 – RBarryYoung
@RBarryYoung啊完美!你应该让这个答案而不是评论,所以我可以接受。这样一个有用的功能,我想知道为什么在调试时没有默认显示。 – Allen
由于异常助手通常用于查看堆栈跟踪。我猜测它在你的机器上停止了工作,但你并没有完全明确地说明这一点。 –