2011-02-01 13 views
6

Czy jest jakiś sposób w .NET (VB.NET lub C#), kiedy wystąpi wyjątek, aby zrzucić stos śledzenia każdego wątku? Zasadniczo chciałbym odtworzyć, co dzieje się w oknie Debugowanie -> Tematy wątku Visual Studio, aby zobaczyć, co każdy wątek robił, gdy wystąpił wyjątekDump StackTrace dla każdego wątku działającego

+0

Użyj właściwości wyjątku StackTrace. –

+3

@ Hans Myślę, że chce uzyskać wszystkie ślady stosu wątków stosu, smiler do 'Thread.getAllStackTraces()' –

+0

@scrum meister: dokładnie – Denis

Odpowiedz

7

Jeśli chcesz uzyskać ślady stosu wszystkich wątków w ramach kodu zarządzanego, możesz spróbować mdbg . Spójrz na Managed Stack Explorer korzysta z mdbg i pobiera stosy wszystkich wątków.

1

Podobne pytania zadawano wcześniej na StackOverflow (jak widać here i here) i na innych forach. Wcześniejsze dyskusje skupiały się na uzyskaniu listy wszystkich uruchomionych wątków, ale gdybyś miał te informacje, pobranie śladu stosu dla każdego byłoby banalne.

Konsekwentnym wnioskiem jest to, że nie ma sposobu, aby to zrobić w .NET, i że trzeba zajrzeć do zewnętrznego narzędzia zbudowanego na interfejsach API debugowania, jak na przykład powyższy przykład Naveen.

Powiązane problemy