Warum bekomme ich keine Zeilennummern von einer Stack-Ablaufverfolgung, die aus Exceptions erstellt wurde?

8

Okay; Angenommen, dieser Code läuft im Debug-Modus -

%Vor%

Ich gebe IMMER null zurück. Warum haben die Stack-Frames keine Zeilennummern, wenn ich die Exception.StackTrace -Zeichenfolge überprüfe, hat sie diese eindeutig für jeden Nicht-Framework-Code? Gibt es ein Problem mit der Erstellung eines Stack-Trace von einer Ausnahme, die mir nicht bekannt ist?

EDIT FÜR KLARHEIT: In der ausgelösten Ausnahme kann ich die Zeilennummern in der StackTrace-Eigenschaft sehen. Ich nehme an, das bedeutet, dass ich alles andere habe, was ich brauche.

    
Stimul8d 09.02.2010, 12:17
quelle

1 Antwort

16

Laut der Dokumentation zur StackTrace-Konstruktorüberladung, die eine Ausnahme auslöst , können Sie dies nicht tun erwarte Zeilennummern beim Erstellen des StackTrace auf diese Weise.

  

Der StackTrace wird mit dem erstellt   der aktuelle Thread des Aufrufers und nicht   Dateiname, Zeilennummer oder   Spalteninformationen.

Um die Zeilennummern zu erhalten, müssen Sie die Überladung verwenden ein Bool sowie die Ausnahme .

Sie benötigen auch Symboldateien (pdb) für Zeilennummern. Symboldateien sind für beide Debug- und Release-Builds verfügbar.

    
Brian Rasmussen 09.02.2010, 12:20
quelle