2015-02-27 8 views
6

Ist es möglich, ein vollständiges StackTrace Objekt MIT Zeilennummern an jedem beliebigen Punkt im CodeErhalten Sie vollen Stack-Trace mit Zeilennummern

ich dies gefunden zu erhalten:

var stackTrace = new StackTrace(); 

Das gibt mir den full stacktrace von wo ich in Ausführung bin. Es enthält jedoch keine Zeilennummern.

Ich fand auch diese:

var stackTrace = new StackTrace(new StackFrame(1, true)); 

, die mir die Zeilennummern, aber nur für einen Rahmen der Stacktrace (kein Vollstacktrace) gibt.

Gibt es eine Möglichkeit, beides zusammen zu bekommen?

HINWEIS: Ich habe keine Ausnahme, mit der ich arbeite. Ich bin gerade an einem Punkt im Code, wo ich den Stack-Trace in einer benutzerdefinierten Weise protokollieren möchte.

HINWEIS: Ich weiß über Environment.Properties.StackTrace. Aber das gibt eine Zeichenfolge, kein StackTrace Objekt zurück.

+1

'var stackTrace = new StackTrace (true);' Sie erhalten nur Zeilennummerninformationen für Code, für den Sie vollständige PDBs haben. –

Antwort

9

Ich vermute, dass Sie gerade anrufen wollen die overload taking a bool:

var stackTrace = new StackTrace(true); 

Aus der Dokumentation:

Parameter

fNeedFileInfo
Typ: System.Boolean
true zu Erfassen Sie den Dateinamen, die Zeilennummer und die Spaltennummer. andernfalls false.

+0

Das Visual Studio-Fenster zeigte das nicht. Ich glaube, ich habe eine Erweiterung installiert, die das Scrollen der Liste der Überladungen nicht funktioniert. Danke für die Antwort! – Vaccano

Verwandte Themen