Czy istnieje sposób wyłączenia bardzo irytującego zawijania wyjątków WPF podczas debugowania?Wyłączanie zawijania wyjątków WPF w celu debugowania
Przykładem może być okno posiadające pole tekstowe, pole tekstowe jest powiązane z właściwością, getter na tej właściwości zgłasza wyjątek, który nie może być obsłużony przez strukturę prezentacji (throw new StackOverflowException() for przykład).
Co ja powinien być wyświetlany jest
get
{
throw new StackOverflowException(); // < Exception happened here
}
Zamiast tego co widzę jest ...
No Source Available
Call Stack Location:
PresentationFramework.dll!MS.Internal.Data.PropertyPathWorker.RawValue(int k) + 0x64 bytes
powodu zawijania wyjątek WPF za wyjątek ten jest także czasami złapany i wysłany następnie jest ponownie zgłaszane lub ukryte głęboko w MS.Internals i niemożliwe do powrotu do rzeczywistej witryny wyjątku. Powoduje to, że widzimy gigantyczny zestaw wywołań PresentationFramework.dll, PresentationCore.dll i WindowsBase.dll, ale nie ma kodu użytkownika z wyjątkiem App.Main().
Występuje podczas bindowania, zdarzeń wywoływanych podczas tworzenia i innych zupełnie przypadkowych sytuacji bez rymów i przyczyn (wyjątek podczas kliknięcia przycisku czasami mi to robi). Teraz tak mogę spojrzeć na stos śledzenia wewnątrz wyjątku, ale ten ślad stosu jest również prawie bez znaczenia, ponieważ nie mogę wrócić do tej ramki, aby zobaczyć, jakie są zmienne w momencie rzutu.
+1. Widzę to cały czas - jeśli konstruktor mojego okna zgłasza wyjątek, muszę przekopać się na dwa poziomy InnerExceptions, aby dowiedzieć się, jaki był faktyczny błąd. –