Есть ли способ сломать отладчик, когда утверждение ложно и запустить приложение с помощью отладчика Visual Studio. Раньше, когда я отлаживал приложение Windows, я получал исключение, и отладчик ломался, но теперь на смарт-устройстве отображается окно с ошибкой утверждения с трассировкой стека, но я также хотел бы видеть значения переменных и т. д.
Прервать отладчик при ошибке утверждения
Ответы (4)
Глупый я, решение было простым. Когда окно выскочит, нажмите паузу в отладчике :)
Не уверен насчет VS 2008, но по крайней мере в 2010 и более поздних версиях вы можете перейти к отладке/исключениям (Ctrl-Alt-E). Нажмите кнопку «Добавить», выберите «Исключения общеязыковой среды выполнения» и введите:
Microsoft.VisualStudio.TestTools.UnitTesting.AssertFailedException
и нажмите «ОК». Теперь он появится в списке, убедитесь, что вы установили флажок в столбце «Выброшено». Теперь вы получите перерыв при любом сбое утверждения.
Обновлено: скриншот из VS 2017
false
для параметра condition
, согласно документации, отобразить диалоговое окно с тремя вариантами: «Прервать», «Повторить попытку» и «Игнорировать». Выбор «Повторить» приведет к остановке отладчика (аналогично вызову Debugger.Break()
). Нет необходимости задействовать обработку исключений вообще; метод Assert()
совершенно не связан с обработкой исключений, а взлом отладчика для Assert()
включает совершенно другой механизм.
- person Peter Duniho; 08.07.2020
В дополнение к решению Vinay вы можете запустить отладчик для определенного процесса, вызвав
В вашем случае вы можете делать это каждый раз, когда слушатель получает сообщение об ошибке.
Кажется, что вы можете подключить отладчик, когда утверждение не видит других деталей — см. эту статью: http://blogs.msdn.com/b/davidklinems/archive/2005/08/29/457847.aspx. Это довольно устарело, но, возможно, все еще применимо.