Frage

Warum sollte eine Stack-Trace-Show "Zeile 0", aber nur für einen Rahmen in dem Stack-Trace

zB.

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

Hintergrund:

ich eine Anwendung, die mit einer Ausnahme fehlschlägt, und ist ein Stack-Trace in seine Protokolldatei protokolliert. Wenn die applciation gebaut wurde, wurden alle Baugruppen mit voller Debug-Informationen kompiliert (Projekteigenschaften -> Build -> Erweitert -> Debug Info -> Full), und so PDB-Dateien generiert wurden. Um Hilfe diagnostizieren mir, wo der Fehler herkommt, ließ ich die PDB-Dateien in die bin Verzeichnis der Anwendung, und reproduzierte die Ausnahme. Alle Zeilennummern für jeden Stack-Frame-Look richtig, mit Ausnahme von einem, das zeigt „Zeile 0“ als Quelle.

War es hilfreich?

Lösung

Dies war in der Tat auf die der inlining von ihnen Methode als Eric vorgeschlagen.

konnte ich vor Ort die ursprünglichen Fehler reproduzieren, aber nur, wenn sie in einem Release-Build zu kompilieren. Als ich die PDBs hatte, konnte ich Schritt durch den Code und das Problem finden.

Lizenziert unter: CC-BY-SA mit Zuschreibung
Nicht verbunden mit StackOverflow
scroll top