为什么堆栈跟踪会显示“第 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 行”作为其源的行号。