Jak mogę zapisać ślad stosu nieobsługiwanego wyjątku (wyrzuconego z dowolnego wątku) do pliku?Zapisywanie stosu zapisu, gdy wyjątek jest generowany z innego wątku
Potrzebuję tego, aby pomóc w debugowaniu aplikacji do zawieszenia.
Jak mogę zapisać ślad stosu nieobsługiwanego wyjątku (wyrzuconego z dowolnego wątku) do pliku?Zapisywanie stosu zapisu, gdy wyjątek jest generowany z innego wątku
Potrzebuję tego, aby pomóc w debugowaniu aplikacji do zawieszenia.
dziękuje wszystkim, ale widziałem, że kiedy uruchamianie programu z programu Visual Studio danych wyjściowych śledzenia zapisanego przez .NET do okna konsoli, gdy zgłoszony nieobsługiwany wyjątek z dowolnego wątku nie jest przekierowywany do okna konsoli.
Jest przekierowywany po uruchomieniu programu oddzielonego od programu Visual Studio. Ten kod jest bardzo dobry, aby zobaczyć wszystkie ślady stosu z dowolnego wątku, który zgłasza wyjątek, który nie jest obsługiwany.
Zobacz wydarzenie AppDomain.UnhandledException. Wygląda na to, że właśnie tego potrzebujesz.
Wierzę, że możesz to zrobić, słuchając wydarzenia AppDomain.UnhandledException. W przypadku WPF warto słuchać Application.Current.Dispatcher.UnhandledException także
Można uzyskać ślad stosu w bloku catch przez ex.StackTrace jak poniżej:
try
{
//Your code;
}
catch(Exception ex)
{
string innerException = ex.InnerException;
string stackTrac = ex.StackTrace;
//Write this stackTrac to any file where you want
}