17

我正在尝试使用本地机器调试器调试 Windows 8 C# Store 应用程序。所以,我在调用后向MainPage构造函数添加了一些不正确的行。InitializeComponent我尝试了导致DivideByZeroNullReferenceException- 结果相同的代码。

所以,我执行“开始调试”,调试器在这里中断:

#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常量的目的究竟是什么?

4

3 回答 3

21

它看起来像一个 xaml 解析异常。您是否能够查看异常消息并查看错误在哪里?

这是一些示例屏幕截图:

在此处输入图像描述

于 2013-04-23T01:36:28.583 回答
16

好吧,当您启动 Visual Studio 时,您必须单击调试,然后单击选项和设置,然后单击调试中的常规,然后单击启用我的代码。

于 2014-05-30T21:21:03.503 回答
3

在调试之前在“调试/Windows/异常设置”中启用“公共语言运行时异常”会很有帮助。Visual Studio 现在将因实际错误而中断。

在此处输入图像描述

于 2018-09-25T12:35:46.520 回答