質問

スタック トレースに「行 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」を表示するものを除いて、正しく表示されます。

役に立ちましたか?

解決

これは確かに、エリックが提案したように、それらのメソッドをインライン化したものでした。

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

ライセンス: CC-BY-SA帰属
所属していません StackOverflow
scroll top