2011-02-01 11 views
6

Esiste un modo in .NET (VB.NET o C#), quando si verifica un'eccezione, eseguire il dump dello stacktrace di ciascun thread? Fondamentalmente vorrei riprodurre ciò che accade nella finestra Debug-> Threads di Visual Studio per vedere cosa stava facendo ogni thread quando si è verificata l'eccezioneDump StackTrace per ogni thread in esecuzione

+0

Utilizzare la proprietà StackTrace dell'eccezione. –

+3

@Hans penso che voglia ottenere tutti i thread in esecuzione stack stack, smiler a 'Thread.getAllStackTraces()' di java ' –

+0

@scrum meister: esattamente – Denis

risposta

7

Se si desidera ottenere tracce di stack di tutti i thread all'interno del codice gestito, è possibile provare mdbg . Dai uno sguardo a Managed Stack Explorer usa mdbg e ottiene stack di tutti i thread.

1

Domande simili sono state precedentemente poste su StackOverflow (come visto here e here) e altri forum. Quelle discussioni precedenti si concentravano su come ottenere un elenco di tutti i thread in esecuzione, ma se avessi queste informazioni, ottenere una traccia di stack per ognuna sarebbe banale.

La conclusione consistente è stata che non c'è un modo per farlo in .NET, e che avresti bisogno di guardare a uno strumento esterno costruito su API di debug, come l'esempio Naveen menzionato sopra.