为什么堆栈跟踪会显示“line 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
目录中,并重现了这个异常。每个堆栈帧的所有行号看起来都是正确的,除了其中一个显示其源代码为“line 0”。