2016-07-22 17 views
22

Otrzymuję następujący wyjątek (w holenderskim, tłumaczenie angielskie następuje w tekście), który przerywa mój debugger po naciśnięciu "OK" zatrzymuje sesję debugowania i zamyka aplikacja:wizualny Nieobsługiwany wyjątek w debuggerze :: HandleIPCEvent przy przełamywaniu pewnego punktu przerwania

enter image description here

Tłumaczone w tekście:

--------------------------- 
LerTemperaturaWPF.vshost.exe - Application Error 
--------------------------- 
INTERNAL ERROR: 
Unhandled exception in Debugger::HandleIPCEvent. 
Event ID=0x246. 
Exception code=0xc0000005, Eip=0x68fbaeca. 
Process ID=0x1094 (4244), Thread ID=0x10a4 (4260). 
--------------------------- 
OK 
--------------------------- 

dzieje się tak, gdy po raz pierwszy przerwy debugger są wewnątrz pewnego kawałka kodu:

private void PropertyChanged(object sender, System.ComponentModel.PropertyChangedEventArgs e) 
{ 
    // Set value of property, only when the long editor is selected (no optionlist item is selected) 
    if (this.Editor.SelectedItem != null) 
    { 
     if (this.Editor.SelectedItem as OptionForList == null) 
     { 
      this.Editor.SelectedValue = ((Management.Property)this.Editor.SelectedItem).Value; 
      this.Editor.SelectedIndex = 0; 
     } 
    } 
} 

Zdarza się, gdy umieszczam punkt przerwania wewnątrz instrukcji 2. if, przed drugą instrukcją if (gdziekolwiek ją umieściłem). Nie sprawia mi problemów.

Jeśli upewnię się, że pierwszy podział debuggera jest przed tym kodem, a następnie trafia punkt przerwania w tym kodzie, nie ma żadnych problemów. Debugger musiał zostać uszkodzony przed uzyskaniem dostępu do tego kodu. Teraz nie sądzę, że ma to coś wspólnego z tym kodem (w 90% pewne).

Zmieniona właściwość jest formantem użytkownika i jakoś myślę, że debugger nie może poprawnie obsłużyć kontroli użytkownika? może?

Czy ktoś wcześniej widział to zachowanie i wie, jak to naprawić? czy muszę wyłączyć (lub włączyć) niektóre ustawienia debugowania?

Odpowiedz

1

(1) W menu Debuguj-> Windows-> Wyjątki i włącz wszystkie pola wyboru. Debuguj aplikację, pokaże ci faktyczne i szczegółowe błędy w oknie komunikatu.

(2) Kliknij prawym przyciskiem myszy na projekt/rozwiązanie -> Właściwości -> Debuguj -> Usuń zaznaczenie "Włącz proces hostingu wizualnego".

(3) Należy również zmienić docelową platformę (X86/Any CPU/X64), ponownie skompilować aplikację i ponownie ją zdebugować.

(4) Narzędzia> Opcje> Debugowanie> Ogólne> "Użyj trybu zarządzanej zgodności".

+1

Dzięki, ale niestety nie dla mnie. – DdW

+1

Czy otrzymujesz te same komunikaty o błędach? Czy możesz udostępnić próbkę? –

+0

Podczas debugowania programu WPF dodano punkt przerwania do zdarzenia kliknięcia przycisku. W tym wydarzeniu nie było jeszcze nic przydatnego: punkt przerwania został dodany do nawisu otwierającego. – DdW

32

Kliknij prawym przyciskiem myszy na projekt/rozwiązanie -> Właściwości -> Debuguj -> Sprawdź "Włącz debugowanie kodu natywnego".

+1

To zadziałało dla mnie. W moim przypadku punktem przerwania była metoda asynchroniczna. Byłoby miło wiedzieć, dlaczego tak się dzieje. – LoRdPMN

+0

Dla mnie zadziałało, ponieważ próbowałem debugować aplikację i za każdym razem przestawałem kręcić nad niestandardową zmienną kontrolną, która została odziedziczona z Textbox, więc sprawdzałem tylko różne konfiguracje w ustawieniach debugowania i ten działał dla mnie. –

+0

Pracował jak magia! Ponieważ w moim projekcie nie ma C ani wskaźnika (kod natywny). –

0

Wszystkie opisane tutaj odpowiedzi nie gwarantują 100% wyleczenia. To, co robię jako obejście, polega na tym, że wystarczy przejść do następnej linii podczas debugowania. Po tym, jak widzę wartość tej zmiennej w zegarku po najechaniu myszą. (W moim przypadku przejście do następnej linii nie zmienia wartości)