Kann ich einen Stacktrace von einer CLR-Ausnahme erhalten, ohne den VS-Debugger anzuhängen?

8

Ich habe eine Website, die auf einem Remote-Server ausgeführt wird und Informationen von einer auftretenden Ausnahme abrufen möchte. Ich kann VS nicht installieren oder Remotedebuggen verwenden und habe versucht, verschiedene Versionen von WinDbg mit wenig Erfolg zu verwenden. In meinen lokalen Tests kann ich WinDbg veranlassen, eine C ++ - Ausnahme oder eine CLR-Ausnahme, die ich geworfen habe, zu unterbrechen, kann aber nicht viel mehr Informationen erhalten als "etwas wurde geworfen".

Ist WinDbg der Weg zu gehen, oder gibt es einen anderen Weg, oder bin ich geschraubt, weil ich keine ausreichende Protokollierung habe?

    
MStodd 03.08.2012, 21:13
quelle

1 Antwort

14

Hängen Sie WinDbg an den Prozess an und geben Sie dann folgende Befehle ein:

%Vor%

Die Ausführung wird fortgesetzt (nach dem Befehl go) und bricht jedes Mal ab, wenn eine CLR-Ausnahme ausgelöst wird (oder eine andere nicht behandelte Ausnahme). Wann immer es bei CLR-Ausnahme bricht, sehen Sie:

%Vor%

Dann können Sie SOS-Befehle wie !pe verwenden, um den Ausnahmetyp auszudrucken, !ClrStack um den Stapel zu stapeln, !dso , um verwaltete Objekte im Stapel auszugeben usw.

EDIT: Ich hatte Tippfehler in sxe und sxd Befehle. Danke an @MStodd, dass du das bemerkt hast.

    
seva titov 03.08.2012, 21:43
quelle

Tags und Links