визуальное Необработанное исключение в Debugger :: HandleIPCEvent при нарушении определенной точки останова

23

Я получаю следующее исключение (на голландском языке, английский текст следует в тексте), который прерывает мой отладчик, когда я нажимаю «ОК», он останавливает сеанс отладки и закрывает приложение:

Переведено в тексте:

---------------------------
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   
---------------------------

Это происходит, если первый раз, когда отладчик разбивается, находится внутри определенного фрагмента кода:

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;
        }
    }
}

Это происходит, когда я помещаю точку останова во 2-й оператор if, перед вторым оператором if (где бы я его не разместил). Это не дает мне проблем.

Если я убеждаюсь, что первый разрыв отладчика есть до этого кода, а затем он попадает в точку останова в этом коде, проблем нет. Отладчик должен сломаться, прежде чем перейти к этому коду. Теперь я не думаю, что это имеет какое-либо отношение к этому коду (на 90%).

Измененное свойство - это пользовательский элемент управления, и почему-то я думаю, что отладчик не может правильно обработать пользовательский элемент управления? может быть?

Кто-нибудь видел это поведение раньше и знает, как это исправить? мне нужно отключить (или включить) некоторые параметры отладки

    
задан Vincent 22.07.2016 в 14:25
источник

3 ответа

32

Щелкните правой кнопкой мыши по проекту / решению - & gt; Свойства - & gt; Debug - & gt; Установите флажок «Включить отладку собственного кода».

    
ответ дан Dipen Shah 02.09.2016 в 21:44
  • Это сработало для меня. В моем случае точка останова находилась на асинхронном методе. Было бы хорошо знать, почему это происходит. –  LoRdPMN 08.09.2016 в 21:33
  • Для меня это работало, потому что я пытался отлаживать приложение, и он ломался каждый раз, когда я наводил на себя настраиваемую контрольную переменную, которая была унаследована от Textbox, поэтому я просто проверял различные конфигурации в настройках Debug, и это работало для меня. –  Dipen Shah 08.09.2016 в 22:47
  • Работал как волшебство! Поскольку в моем проекте нет C или указателя (собственный код). –  Manish Dubey 28.11.2017 в 14:22
1

(1) В меню Отладка - & gt; Windows- & gt; Исключения и включите все флажки Thrown. Отлаживая приложение, оно покажет вам фактические и подробные ошибки в окне сообщений.

(2) Щелкните правой кнопкой мыши по проекту / решению - & gt; Свойства - & gt; Debug - & gt; Снимите флажок «Включить процесс хостинга визуальной студии».

(3) Также измените цель платформы (X86 / Any CPU / X64), повторно скомпилируйте приложение и снова отлаживайте его.

(4) Инструменты & gt; Опции & gt; Отладка & gt; Общие & gt; Установите флажок Использовать режим совместимой совместимости.

    
ответ дан Jack Zhai-MSFT 26.07.2016 в 08:05
  • Спасибо, но, к сожалению, не работал для меня. –  DdW 01.09.2016 в 16:50
  • Получают ли вы те же сообщения об ошибках? Можете ли вы поделиться образцом? –  Jack Zhai-MSFT 06.09.2016 в 07:25
  • Я отлаживал программу WPF и добавлял точку останова в событие Clicked кнопки. В этом событии ничего полезного не было: точка останова была добавлена ​​к открывающей скобке. –  DdW 06.09.2016 в 08:35
  • Связано ли это с конкретной строкой кода на вашей стороне? Для необработанной проблемы исключения вам действительно нужно собрать подробные сообщения об ошибках и подробно проанализировать параметры на вашей стороне, если вы не смогли предоставить образец. –  Jack Zhai-MSFT 07.09.2016 в 13:15
  • Нет, это не так: открывающая скобка была единственной вещью на этой линии ... :) Я просто обошел ее –  DdW 07.09.2016 в 13:21
0

Все описанные здесь ответы не гарантируют 100% -ное лечение. То, что я делаю в качестве обходного пути, состоит в том, что просто переходит на следующую строку при отладке . После этого я могу увидеть значение этой переменной в часах при наведении мыши. (В моем случае переход на следующую строку не изменит значение)

    
ответ дан Manish Dubey 29.11.2017 в 12:30