winforms – 在堆栈跟踪中获取VB.NET行号
我有一个VB.NET 2010
Winforms应用程序,我想在堆栈跟踪中包含行号.我已经阅读了以下问题和答案:
how to print out line number during application run in VB.net 其中提到“您总是需要将PDB文件与您的代码一起包含,其中包含在这种情况下使用的调试信息”.在高级编译器设置下,我已经尝试将“生成调试信息”为“pdb-only”和“full”作为我的发行版本,并确认在与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与可执行文件处于相同的路径.
从您打电话的构造函数的
documentation:
尝试使用: Dim st As StackTrace = New StackTrace(ex,True) 而是使用this constructor.第二个构造函数参数描述为:
(编辑:李大同) 【声明】本站内容均来自网络,其相关言论仅代表作者个人观点,不代表本站立场。若无意侵犯到您的权利,请及时与联系站长删除相关内容! |