我正在尝试使用Local Machine调试器调试Windows 8 C#Store应用程序。因此,在MainPage
调用之后,我向InitializeComponent
构造函数添加了一些不正确的行。我尝试了导致DivideByZero
或NullReferenceException
的代码 - 结果相同。
所以,我执行“Start Debugging”,调试器在这里打破:
#if DEBUG && !DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
UnhandledException += (sender, e) =>
{
if (global::System.Diagnostics.Debugger.IsAttached) global::System.Diagnostics.Debugger.Break();
};
#endif
堆栈信息不可用,无法检测错误的位置(“输出”窗口中只有第一次机会异常消息提示)。
我尝试在项目预处理器符号中定义DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
。这次我收到以下奇怪的消息:“调试器附加到YourProgram.exe但未配置为调试此未处理的异常”。
只有在“异常”对话框中选中特定异常类型并且定义了DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
时,我才设法在导致错误的行上中断。
那么,什么是打破违规行的正确方法,就像传统的桌面应用程序调试一样?如果可能,不修改例外列表。 DISABLE_XAML_GENERATED_BREAK_ON_UNHANDLED_EXCEPTION
常数的目的究竟是什么?