10

为什么堆栈跟踪会显示“第 0 行”,但仅显示堆栈跟踪中的一帧

例如。

...
at System.Data.SqlClient.SqlCommand.ExecuteDbDataReader(CommandBehavior behavior)
at System.Data.Common.DbCommand.System.Data.IDbCommand.ExecuteReader()
at My.LibraryA.Some.Method():line 16
at My.LibraryB.Some.OtherMethod():line 0
at My.LibraryB.Some.Method():line 22
at My.LibraryA.Some.Method():line 10

背景:

我有一个应用程序因异常而失败,并将堆栈跟踪记录到其日志文件中。构建应用程序时,所有程序集都使用完整的调试信息进行编译(项目属性 -> 构建 -> 高级 -> 调试信息 -> 完整),因此生成了 PDB 文件。为了帮助我诊断错误的来源,我将 PDB 文件放到了应用程序的bin目录中,并重现了异常。每个堆栈帧的所有行号看起来都是正确的,除了显示“第 0 行”作为其源的行号。

4

1 回答 1

5

正如 Eric 建议的那样,这确实是他们的内联方法。

我设法在本地重现了原始错误,但仅限于在发布版本中编译时。因为我有 PDB,所以我可以单步调试代码并找出问题所在。

于 2010-05-15T15:10:25.493 回答