在本地计算机上调试Windows应用商店应用程序

时间:2013-04-17 12:12:34

标签: c# debugging windows-8 visual-studio-2012 windows-store-apps

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

所以,我执行“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常数的目的究竟是什么?

3 个答案:

答案 0 :(得分:16)

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

答案 1 :(得分:13)

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

以下是一些示例截图:

enter image description here

答案 2 :(得分:0)

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

enter image description here