Я пытаюсь отладить приложение Windows 8 C# Store с отладчиком локальной машины. Итак, я добавил некорректную строку в конструктор MainPage
, после вызова InitializeComponent
. Я попробовал код, который вызывает DivideByZero
или NullReferenceException
- с теми же результатами.Отладка приложения Windows Store на локальном компьютере
Итак, я исполню «Начать отладку», и отладчик остановится здесь:
#if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
UnhandledException += (sender, e) =>
{
if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
};
#endif
Stack информация не доступна, то невозможно определить, где ошибка (только первый шанс сообщение исключение в выходной окно дает подсказку).
Я попытался определить DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
в символах препроцессора проекта. На этот раз я получил следующее странное сообщение: «Отладчик прикреплен к YourProgram.exe, но не настроен для отладки этого необработанного исключения».
Только в том случае, если в диалоговом окне «Исключения» отмечен особый тип исключения, а DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
определен, мне удалось сломать строку, вызвавшую ошибку.
Итак, каков правильный способ взломать нарушающую линию, как это было при отладке традиционных настольных приложений? Если возможно, без изменения списка исключений. И что такое цель DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
константа?
Поместите 'System.Diagnostics.Debugger.Launch();' перед тем, как будет выброшено исключение. Это запустит отладчик, чтобы вы могли пройти и посмотреть, где проблема. –
@Jack Hughes - это что-то меняет в поведении отладчика, но я пытаюсь узнать, как отлаживать ошибку в неизвестном месте. Невозможно добавить 'Debugger.Launch' перед каждой строкой в программе ... –