2011-01-28 3 views
7

Есть ли способ разбить отладчик, когда утверждение ложно, и запустить приложение с помощью отладчика Visual Studio. Раньше, когда я отлаживал приложение Windows, я получал исключение, и отладчик прерывался, но теперь на смарт-устройстве окно с ошибкой подтверждения отображается со стеком, но я также хотел бы видеть переменные значения и т. Д.Не удалось отладить отладчик при утверждении

ответ

11

Глупо меня, решение было простым. Когда окно выскочит, нажмите паузу в отладчике :)

+2

Интересно, есть ли способ сделать это автоматически. – Superbest

+1

@Superbest - есть. См. Мой ответ. –

+0

При отладке модульного теста с помощью Visual Studio ошибка Debug.Assert не появляется в окне, это похоже на то, что тестовая среда удалила эту функцию. (Я использую VS 2013 Pro.) – yoyo

4

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

Debugger.Break

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

8

Не уверен относительно VS 2008, но по крайней мере в 2010 году и позже вы можете перейти к Debug/Exceptions (Ctrl-Alt-E). Нажмите на кнопку "Добавить", выберите "Common Language Runtime Исключения" и введите:

Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException 

и нажмите "OK". Теперь он появится в списке, убедитесь, что вы установили флажок в столбце «Брошенный». Теперь вы получите перерыв в любом отказе утверждения.

+0

Хороший совет, но что, если я хочу сломать System.Diagnostics.Debug.Assert при отладке модульного теста? – yoyo

+0

Найденное решение - используйте [TestInitialize], чтобы добавить пользовательский System.Diagnostics.TraceListener, который генерирует исключение UnitTesting.AssertFailedException в случае сбоя Debug.Assert. – yoyo

Смежные вопросы