在VB.net中,我知道您可以使用堆栈跟踪来获取导致异常的函数调用层次结构。
但是,我也知道如果您正在调试并生成异常,您可以直接在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()。
我知道有一种方法可以让你在通话中继续前进。
例如,可能是从这里打来的电话:
Public Shared Sub MaybeDoSomethingFoolish()
If DareIActAFool = True Then
DoSomethingFoolish()
End If
End Sub
通过遍历heirarchy,我可以在这个子程序中的哪一行引起错误,并且它也会突出显示:
DoSomethingFoolish()
(我现在没有收到这些信息,但我之前的安装确实如此)
从那里,我可以看看从哪里调来MaybeDoSomethingFoolish()等等,直到我到达了一个“起点”。排序,即按钮单击事件或表单加载事件。 (我只是从我写的代码中寻找调用heirarchy / stack trace。)
我知道有一种方法可以在IDE中查看它,因为我几周前能够做到这一点。我最近在我的工作机器上升级到了Windows 7。我想知道为什么我失去了这种能力。
这是我可以在某处更改的设置吗?
我是否获得了Visual Studio的劣质版本? (我现在有VS 2010专业版)
如果这是一个愚蠢的问题我很抱歉,但当我尝试在互联网上搜索答案时,我发现所有人都在谈论这件事:
Dim ST As New StackTrace()
msgbox(ST.ToString())
这不是我要找的。我可能使用了错误的关键字。
我所指的调试模式允许您查看基本相同的信息,但是在IDE中它并不需要插入任何代码,也不需要我读取堆栈跟踪中的文本信息并在源中手动导航。这是点击。
答案 0 :(得分:3)
要在暂停时查看当前的调用堆栈,请尝试
Debug> Windows> Call Stack
或
Ctrl+L