在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
由於異常助手通常用於查看堆棧跟蹤。我猜測它在你的機器上停止了工作,但你並沒有完全明確地說明這一點。 –