我有一個VB.NET 2010 Winforms應用程序,我想在堆棧跟蹤中包含行號。我讀過以下問題及答案:在堆棧跟蹤中獲取VB.NET行號
how to print out line number during application run in VB.net
,其中提到「你總是需要包括你的代碼,其中包含調試在這樣的情況下使用的信息PDB文件」。在高級編譯器設置下,我嘗試了「生成調試信息」作爲我的發行版本中的「僅限pdb」和「完整」,並確認在我的EXE的同一目錄中生成了新的PDB文件。但是下面的測試代碼生成的零線數每個堆棧幀,並且不返回文件名:
Dim st As StackTrace = New StackTrace(ex)
For Each sf As StackFrame In st.GetFrames
MsgBox("Line " & sf.GetFileLineNumber() & sf.GetFileName)
Next
但是下面的代碼,因此它似乎沒有它產生一個本來很好看的堆棧跟蹤後直要與一般的異常處理的一個問題:
ExceptionDetails.Text = ex.GetType.ToString & "(0x" & hr.ToString("X8") & "): " & ex.Message & vbCrLf & ex.StackTrace
我似乎無法找到項目的配置下的任何其他可能的設置,並想知道是否有人對可能會導致此問題的其他東西的想法。我發現在這裏和其他地方搜索的所有解決方案似乎都建議確保PDB與可執行文件位於同一路徑中。
這太棒了。感謝張貼:) – CrazyTim