【问题标题】:Get line number in exception [duplicate]在异常中获取行号[重复]
【发布时间】:2012-09-11 23:11:00
【问题描述】:

可能重复:
C# Exceptions Not Giving Line Numbers

在 C# winform 中,我有一个 catch 块内

Exception.ToString() -> 获取异常信息和抛出异常的代码行号。

在开发中。环境中,我得到了行号,而当在生产中部署相同的 EXE 时,我没有得到行号,有什么想法吗?

如何在生产环境中获取 line #s?即使我尝试过 StackTrace

类的GetFileLineNumber(),但它没有在生产环境中给我带来#行。

【问题讨论】:

  • 您需要发布您遇到问题的代码。就目前而言,这个问题没有多大意义......

标签: c# .net vb.net winforms exception


【解决方案1】:

仅当为引发异常的代码加载调试符号时,文件名和行号才可用。这些符号位于 .pdb 文件中,这些文件通常不与生产环境中的程序集一起部署。如果您部署这些文件,您应该会在堆栈跟踪中获得行号信息。

【讨论】:

  • 我有程序调试数据库 (PDB) 文件和 EXE,但我仍然看不到 # 行。
  • @Sharpeye500,您确定您的 PDB 文件与可执行文件匹配吗?
  • 对不起,它没有安装,它被保存为支持文件。我该如何处理?有什么动态代码方法吗?
  • @Sharpeye500,你是怎么处理的?你只需要部署和exe同时生成的PDB
【解决方案2】:

您需要将 PDB 文件与应用程序放在同一目录中才能获取此类信息。但是,发布版本通常不用于调试,所以我不知道您为什么需要发布版本中的这些信息。

【讨论】:

  • 在许多情况下,某些问题在调试环境中很难重现(尤其是竞态条件)。有一个行号真的很有帮助。话虽如此,重构代码以使一种方法只负责一项职责也可以帮助确定可能存在的问题。
猜你喜欢
  • 2021-05-17
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2023-03-08
  • 2013-10-19
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多