在堆栈跟踪中获取 VB.NET 行号

2023-11-27

我有一个 VB.NET 2010 Winforms 应用程序,我想在堆栈跟踪中包含行号。我已阅读以下问题和答案:

如何在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 与可执行文件位于同一路径中。


这个问题已经解决了一段时间,但我想我应该分享我最近在我的项目中包含的最终工作功能。它返回初始异常信息和该点的完整堆栈跟踪,后跟堆栈跟踪中导致异常的行号和文件名。

Public Function GetExceptionInfo(ex As Exception) As String
    Dim Result As String
    Dim hr As Integer = Runtime.InteropServices.Marshal.GetHRForException(ex)
    Result = ex.GetType.ToString & "(0x" & hr.ToString("X8") & "): " & ex.Message & Environment.NewLine & ex.StackTrace & Environment.NewLine
    Dim st As StackTrace = New StackTrace(ex, True)
    For Each sf As StackFrame In st.GetFrames
        If sf.GetFileLineNumber() > 0 Then
            Result &= "Line:" & sf.GetFileLineNumber() & " Filename: " & IO.Path.GetFileName(sf.GetFileName) & Environment.NewLine
        End If
    Next
    Return Result
End Function
本文内容由网友自发贡献,版权归原作者所有,本站不承担相应法律责任。如您发现有涉嫌抄袭侵权的内容,请联系:hwhale#tublm.com(使用前将#替换为@)

在堆栈跟踪中获取 VB.NET 行号 的相关文章

  • 如何删除气球工具提示上的“扳手”按钮? [关闭]

    就目前情况而言 这个问题不太适合我们的问答形式 我们希望答案得到事实 参考资料或专业知识的支持 但这个问题可能会引发辩论 争论 民意调查或扩展讨论 如果您觉得这个问题可以改进并可能重新开放 访问帮助中心 help reopen questi
  • 鼠标按下和单击冲突

    我在 form MouseDown 事件上有一个 Drag 方法 我还在表单上有一个点击事件 问题是 如果我单击表单 MouseDown 事件就会被触发 并且它永远没有机会触发单击事件 解决这个问题的最佳方法是什么 我正在考虑如果表单实际上
  • OpenFileDialog 无法加载 CSV 文件,但可以加载 xls/xlsx Excel 文件 [重复]

    这个问题在这里已经有答案了 在我的 Windows 窗体应用程序中加载 Excel 文件时 我可以加载 xls and xlsx格式很好 但是当我选择一个 CSV我收到以下错误 System NullReferenceException 未
  • 将 Office (Word Excel) 嵌入到 WinForms 或 WPF 控件中

    是否可以在WinForms控件中嵌入Office应用程序 在计算机上安装了office 您只需要添加这些 using 语句 using Microsoft Office Interop using Microsoft Office Inte
  • MouseHover 事件中的鼠标坐标?

    我知道如何检索鼠标坐标PictureBox Click虽然事件e In a PictureBox MouseHover e不返回此类信息 如何获取鼠标坐标MouseHover事件 有办法吗 提前致谢 Control MouseHover h
  • winforms 的 MVVM [重复]

    这个问题在这里已经有答案了 可能的重复 Windows 窗体的 UI 设计模式 如 WPF 的 MVVM https stackoverflow com questions 595469 ui design pattern for wind
  • 阻止Winform最大化?

    我想防止我的桌面应用程序最大化 它不应该以任何方式最大化 通过双击标题栏 或通过单击键盘上的 Windows 向上箭头等 gt 我禁用了这两个最大化框 and 最小化框 gt 我还设置了最大尺寸 and 最小尺寸对于我的 WinForm仍然
  • 绑定到列表的可编辑 DataGridView

    我有一个绑定到列表的 DataGridView 这些值显示良好 当我单击某个值时 它开始编辑 但是当我按 Enter 时 更改将被忽略 任何数据都不会更改 当我在值设置器中放置断点时 我可以看到它在编辑后执行 但没有显示更改的数据 我的绑定
  • 使用 linq-to-entities 将字符串转换为日期时间的大问题

    如何使用 linq toEntity 将字符串转换为日期时间 我收到以下查询 其中visit date列数据类型是字符串 var memberl from v in abc visits join m in abc members on v
  • WPF 中与 ControlPaint.Light 等效的是什么?

    与 ControlPaint Light 等效的 wpf 是什么 http msdn microsoft com en us library 3wz9t9fy 28VS 80 29 aspx http msdn microsoft com
  • 在列标题上绘制矩形

    I m painting rectangle on the column headers in datagridview but on scrolling to right it disappears as in the picture s
  • 如何正确使用Dispatcher.BeginInvoke?

    我几乎在互联网上到处搜索 我用谷歌搜索了很多次并找到了很多结果 但我仍然找不到解决我的问题的方法 我正忙着改造旧的WinForms应用程序到新的 WPF 应用程序 但我在使用某些命令时遇到问题 在他们使用的 Winforms 应用程序中Co
  • WinForms 应用程序设计 - 将文档从 SQL Server 移动到文件存储

    我有一个连接到 SQL Server 的标准 WinForms 应用程序 该应用程序允许用户上传当前存储在数据库中的文档 在使用图像列的表中 我需要更改这种方法 以便将文档存储为文件 并将文件的链接存储在数据库表中 使用当前的方法 当用户上
  • TreeView:仅在子节点中存在复选框

    我需要一个树视图控件 根节点没有复选框 只有图像 所有子节点都有一个复选框 图像 C net 2 0 winforms 不是 wpf WinForms树视图默认不支持混合复选框 非复选框节点 您可以在树视图上全局启用复选框 并使用以下命令在
  • 调整窗口大小 C#

    是否可以从另一个应用程序中调整正在运行的应用程序的窗口大小 我希望当我正在构建的应用程序启动时 另一个应用程序 比如说 itunes 的宽度减少到其 2 3 以便剩余的 1 3 由我的应用程序占用 这两个应用程序应该一起运行并且可供用户访问
  • 如何获取Winforms窗体标题栏高度的大小?

    因此 如果它是工具窗口或可最小化的表单 我希望能够以编程方式获取其高度 这可能吗 如果是这样怎么办 您可以使用以下方法确定工具窗口和普通表单的标题栏高度 Rectangle screenRectangle this RectangleToS
  • 设置 Form.KeyPreview = true 的缺点?

    我想知道 Form KeyPreview 属性实际上有什么用处 它为什么存在以及将其设置为 true 会带来什么 风险 我想它一定有some负面影响 否则它根本不应该存在 或者至少默认情况下是正确的 EDIT 我很清楚what确实如此 我问
  • 当我使用 Image.FromFile() 时 FileNotFound

    我在这种情况下使用 Image FromFile string 方法 using System using System Collections Generic using System ComponentModel using Syste
  • 某些笔记本电脑中的 VB.net Forms UI 显示问题

    我是 VB 应用程序的新手 无法弄清楚我的应用程序出了什么问题 有一个带有几个标签和文本字段的表单 当我在我和其他人的机器上运行该应用程序时 它显示良好 并具有正确的对齐和字体 然而 对于某些人来说 应用程序表单 UI 是破碎的 未对齐的文
  • 如何防止用户控件表单在 C# 中处理键盘输入(箭头键)

    我的用户控件包含其他可以选择的控件 我想实现使用箭头键导航子控件的方法 问题是家长控制拦截箭头键并使用它来滚动其视图什么是我想避免的事情 我想自己解决控制内容的导航问题 我如何控制由箭头键引起的标准行为 提前致谢 MTH 这通常是通过重写

随机推荐

  • 匿名类型

    我有一个Dictionary TKey TValue like Dictionary
  • 如何检测用户鼠标移动的距离?

    我正在尝试检测鼠标移动的距离 以像素为单位 我目前正在使用 document mousemove function event var startingTop 10 startingLeft 22 math Math abs startin
  • 我的虚拟主机上的 Apache 500 内部服务器错误 [已关闭]

    Closed 这个问题需要细节或清晰度 目前不接受答案 我的 Web 应用程序项目位于 media disk1 Projects 中的文件夹中 我想使用 Apache 虚拟主机为他们提供服务http lab 这就是我设置虚拟主机的方式 1
  • java 字符串排列组合查找

    我正在写一个Android单词应用程序 我的代码包含一个方法 该方法可以查找字符串和最小长度为 3 的 7 个字母字符串的子字符串的所有组合 然后将所有可用组合与字典中的每个单词进行比较 以找到所有有效单词 我正在使用递归方法 这是代码 G
  • 在具有 500e6 行的 hdf5 pytable 中查找重复项

    Problem 我有一个大型 gt 500e6 行 数据集 已放入 pytables 数据库中 假设第一列是 ID 第二列是每个 ID 的计数器 每个 ID 计数器组合必须是唯一的 我在尝试查找的 500e6 行中有一个非唯一行 作为初学者
  • 设置脚本以在电子邮件通知中包含 Google 文档表单数据

    我已经使用 googledocs 设置了一个表单 我只想将输入到表单中的实际数据通过电子邮件发送给我 而不是建议表单已完成的一般回复 我没有代码等方面的技能或经验 但确信我可以解决这个问题 我花了几个小时 但没有任何运气 我的表格非常基本
  • 如何对无序 std::pair 进行 std::hash

    我希望能够使用std pair作为 unordered container 中的键 我知道我可以通过以下方式做到这一点 template
  • IOS:在 xcode 中为我的应用程序设置默认语言

    我启动了我的 xcode 项目 并进行了以下设置 在 xcode 5 中它添加了这种 基本 语言 但我不明白它是如何工作的 我想将默认语言设置为英语而不是意大利语 例如 如果用户将其设备设置为西班牙语或法语 则它必须看到英语版应用程序 而不
  • 计算 C# 中 XmlNode 的总数

    我试图找到一种方法来递归地从 XmlNode 获取子节点的总数 这就是说我想计算所有的孩子 孙子等 我认为它就像 node SelectNodes
  • 带有域字段的 CORS cookie 仅在 Firefox 中使用 jQuery AJAX 设置

    我无法设置 cookiedomain使用跨站点请求添加归档 我试图通过 jquery ajax 调用 request 来实现这一点 是否可以在除 Firefox 之外的其他浏览器中使用它 一些请求标头 Accept application
  • 从 JSON 字符串创建 Hashmap

    从java中的json字符串创建hashmap 我有 json 字符串 例如 phonetype N95 cat WP 并想转换成标准的Hashmap 我该怎么做 解析 JSONObject 并创建 HashMap public stati
  • Android 按钮背景选择器

    我想使用以下按钮选择器
  • 在 Angular JS 中动态应用 CSS 样式属性

    这应该是一个简单的问题 但我似乎找不到解决方案 我有以下标记 div style width 20px height 20px margin top 10px border solid 1px black background color
  • 如何将按钮添加到settings.bundle?

    我正在开发一个 iPhone 应用程序 默认情况下用户保持登录状态 如果他想注销 他应该打开 设置 并单击 注销 按钮 这将删除他的数据并在下次打开应用程序时要求登录 如何添加这样的按钮 就像 Twitter 设置中一样 正如 CodaFi
  • vb.net 从创建它的线程以外的线程访问

    我正在尝试将文本设置为标签Label caller Text phone number我收到此错误 System InvalidOperationException 跨线程操作无效 从创建它的线程以外的线程访问控制 Label caller
  • 如何在 Spring Security 中启用 POST、PUT 和 DELETE 方法

    我用 Spring Boot 开发了一个应用程序 运行良好 有一个安静的控制器 我尝试向某些页面添加 spring security 其余控制器的端点是 api greetings 我在下面的类中配置了安全设置 Configuration
  • 解析 xml 时出错:与 Facebook SDK 未绑定前缀

    我的项目无法识别 xml 中的 com facebook widget ProfilePictureView 或其他小部件 我导入了 facebook sdk 甚至用它来登录并与 open graph 交互 这一切都有效 我只是想添加一个个
  • 如何用D3添加简单的圆弧

    我想在图表部分添加一个简单的弧线 如圆 vis append circle style stroke gray style fill white attr r 40 attr cx 50 attr cy 50 所提供的D3的例子正在处理数据
  • 如何在for循环中使用setInterval函数

    我正在尝试在给定可变项目列表的情况下运行多个计时器 代码看起来像这样 var list Array for var x in list setInterval function list x 10 console log x gt list
  • 在堆栈跟踪中获取 VB.NET 行号

    我有一个 VB NET 2010 Winforms 应用程序 我想在堆栈跟踪中包含行号 我已阅读以下问题和答案 如何在VB net中运行应用程序时打印行号 其中提到 您始终需要在代码中包含 PDB 文件 其中包含在此类情况下使用的调试信息