Visual Studio 2010 висит на точке трассировки

Проблема:

Всякий раз, когда я пытаюсь сломать или установить точку трассировки в отладчике, наше приложение и визуальная студия полностью замораживаются. После отсоединения отладчика приложение продолжается.

Эта проблема, вероятно, связана с WPF. Мы перенесли наше приложение WinForm в WPF. С тех пор эта проблема возникает. Но им не удается найти определенную часть кода, вызывающего проблему. Я уже откатил сотни коммитов, но безуспешно.

Он также может быть связан с потоком пользовательского интерфейса. Если точка останова установлена ​​где-то далеко от логики пользовательского интерфейса, приложение не замерзает или оно не будет зависеть так часто, как это происходит в потоке пользовательского интерфейса.

[ Edit:] Я использую Windows 7. 64-битный с Visual Studio 2010

[ Обновление:]

Когда Visual Studio зависает, и я пытаюсь отсоединиться до отображения точки останова, сообщение "Невозможно отсоединиться от одного или нескольких процессов. Все выдающиеся функции func-evals не завершены". Но я отключил всю функциональную оценку в параметрах отладки. Я думаю, что моя проблема вызвана func_evaluation, которая не может завершиться или наступает время ожидания.

Есть ли способ увидеть, на что висит func_evaluation визуальная студия?

Пример:

class SomeUiViewPresenterExample
{
   private Timer m_Timer;

public void Init()
{
    m_Timer = new Timer();
    m_Timer.Elapsed += ElapsedFoo();
    m_Timer.AutoReset = false;
    m_Timer.Interval = 200;
}

private void ElapsedFoo(object sender, ElapsedEventArgs elapsedEventArgs)
{
    // there is no code inside this method
    // On the next line a trace point with "---> ElapsedFoo called" will freeze the debugger
}

Что я уже пробовал: (без успеха)

  • включить/отключить хост-процесс
  • пытался отладить процессы x86 и x64
  • запустила визуальную студию с помощью /SafeMode
  • Обновление NGEN
  • отключена "оценка свойств и другие неявные вызовы функций" в параметрах отладки
  • отключенные серверы символов
  • загрузка отключенного символа
  • удаленный кеш шрифтов WPF
  • Отмечено несколько элементов пользовательского интерфейса с помощью "DebuggerDisplay" ( "текст без выражения" ).

(Ticket Microsoft Connect)

Вероятно, связанная с этим проблема:

Поскольку наше приложение использует .NET Remoting для связи с другим процессом, моя проблема заключается в том, что я похож на здесь. Я разместил все записи для удаленных событий в собственной задаче, но без успеха.

Отладочный вывод из отлаженной визуальной студии:

Я подключил отладчик к визуальной студии и заметил некоторые исключения, (80010005)

но я не знаю, насколько они важны для моей проблемы или нет:

(18d8.1708): C++ EH exception - code e06d7363 (first chance)
(18d8.1708): C++ EH exception - code e06d7363 (first chance)
..... // snip
(18d8.18dc): **Unknown exception - code 80010005 (first chance)
..... // 20 seconds freeze until breakpoint hit in IDE

(18d8.18dc): Unknown exception - code 80010005 (first chance)
(18d8.18dc): C++ EH exception - code e06d7363 (first chance)
ModLoad: 365f0000 36665000 C:\Program Files (x86)\Microsoft Visual Studio 10.0\Common7\Packages\Debugger\mcee.dll

// after continue execution debugger and debugged process freezes forever

(18d8.18dc): Unknown exception - code 80010005 (first chance)
ModLoad: 00000000`02b90000 00000000`02c1c000 C:\Windows\SysWOW64\UIAutomationCore.dll
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)
(18d8.1a8c): CLR exception - code e0434352 (first chance)

Спасибо за любые идеи или подсказки

Мануэль

Ответ 1

Спасибо за ваши намеки. Наконец, я установил VS 2012, и отладчик теперь ведет себя как обычно. Кажется, что в отладчике Visual Studio 2010 есть проблема с ошибкой/производительностью.

Ответ 2

Чем больше я смотрю на это, тем больше я подозреваю, потому что вы не используете таймер WPF. Если вы попытаетесь использовать обычный таймер, а не таймер диспетчера WPF, вы рискуете попытаться обновить пользовательский интерфейс в потоке, отличном от ui, что потенциально может быть причиной вашей проблемы (поскольку DataContext является частью UI технически).

Подробнее здесь:

DispatcherTimer против обычного таймера в приложении WPF для планировщика задач