10

スタックトレースに「行0」が表示されるのはなぜですか。ただし、スタックトレースの1フレームのみです。

例えば。

...
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

エリックが示唆したように、これは確かにそれらの方法のインライン化にかかっていました。

元のエラーをローカルで再現することができましたが、リリースビルドでコンパイルする場合のみでした。PDBを持っていたので、コードをステップスルーして問題を見つけることができました。

于 2010-05-15T15:10:25.493 に答える