11

Próbuję debugować aplikację Windows 8 C# Store za pomocą debugera Local Machine. Więc dodałem niepoprawną linię do konstruktora MainPage po wywołaniu InitializeComponent. Próbowałem kod, który powoduje DivideByZero lub NullReferenceException - z tymi samymi wynikami.Debugowanie aplikacji Windows Store na komputerze lokalnym

Więc wykonać „Start Debugging”, a przerwy debugger tutaj:

#if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION 
     UnhandledException += (sender, e) => 
     { 
      if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break(); 
     }; 
#endif 

informacje stosu nie jest dostępny, to jest niemożliwe do wykrycia, gdzie jest błąd (tylko wiadomość wyjątek pierwszej szansy na wyjście okno daje wskazówkę).

Próbowałem zdefiniować DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION w symbolach preprocesora projektu. Tym razem otrzymałem następujący dziwny komunikat: "Debugger jest dołączony do YourProgram.exe, ale nie jest skonfigurowany do debugowania tego nieobsłużonego wyjątku".

Tylko w przypadku, gdy określony wyjątek jest zaznaczony w oknie dialogowym "Wyjątki" i zdefiniowano DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION, udało mi się złamać linię, która spowodowała błąd.

Jaki jest właściwy sposób na przełamanie niewłaściwej linii, tak jak w debugowaniu tradycyjnych aplikacji komputerowych? Jeśli to możliwe, bez modyfikowania listy Wyjątki. I jaki jest dokładnie cel stałej stałej DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION?

+0

Umieść 'System.Diagnostics.Debugger.Launch();' tuż przed wyrzuceniem wyjątku. Spowoduje to uruchomienie debuggera, dzięki czemu można przejść i zobaczyć, gdzie jest problem. –

+6

@Jack Hughes - zmienia coś w działaniu debuggera, ale staram się nauczyć, jak debugować błąd w nieznanym miejscu. Nie można dodać 'Debugger.Launch' przed każdą linią w programie ... –

Odpowiedz

10

Wygląda jak wyjątek parsowania xaml. Czy możesz spojrzeć na komunikat o wyjątku i zobaczyć, gdzie jest błąd?

Oto przykładowy zrzut ekranu:

enter image description here

+0

Nieodebrane. Dzięki! –

14

Więc po uruchomieniu Visual Studio należy kliknąć na debug a następnie Opcje i ustawienia, a następnie Walne debugowanie i kliknij Włącz Just My Code.

+0

To jest właściwa odpowiedź. –

+0

To jest absolutnie najodpowiedniejszy anwser i powinien być odpowiednio zaakceptowany. – NoHarmDan

+1

To nie rozwiązało mojego problemu, miałem zaznaczony "Włącz tylko mój kod", ale bez pomocy. –

Powiązane problemy