visual-studio - winRT 异常堆栈中的行号

标签 visual-studio debugging windows-runtime windows-store-apps symbols

我们有一个使用 WinRT(和 XAML、C#)的 Windows 商店应用程序项目。问题是,当抛出一些异常并且我使用 Debug.WriteLine(ex); 记录异常时,没有行号,所以我不知道,实际上在哪里抛出异常。我当然在项目属性> 构建> 高级> 调试信息中设置了“完整”符号的调试配置。

起初我认为它一定是我们项目中的东西。然而,当我从微软下载一些示例并将以下代码放在那里时,异常仍然没有行号。

        try
        {
            throw new Exception("Test");
        }
        catch (Exception ex)
        {
            Debug.WriteLine(ex);
        }

例如,如果我将上面的代码放入 OnNavigatedTo方法,我得到:
System.Exception: Test
   at SDKTemplate.MainPage.OnNavigatedTo(NavigationEventArgs e)

那里没有行号...

在文章、书籍等中没有提到不应该有行号的事实,但也许我遗漏了什么?会不会跟VS的版本有关?我正在使用 VS2013。或者一些系统范围的设置?

最佳答案

发生的情况是 Visual Studio 没有在执行应用程序的路径中包含 .pdb 文件(符号)。在我的机器上,可执行文件的路径如下所示:

C:\Users\msmall\Documents\Visual Studio 2013\Projects\DebugLineNUMbers\DebugLineNUMbers\bin\Debug\AppX

这就是 VS 打包可执行文件并将其部署到本地机器以运行的地方。 AppX 文件夹中没有 .pdb 文件。你最终得到这个:

System.Exception: Test
  at DebugLineNUmbers.MainPage.OnNavigatedTo(NavigationEventArgs e)

但是,您可以将 .pdb 从 Debug 文件夹(仅上一级)移动到 AppX 文件夹中,并以行号结束:
System.Exception: Test
  at DebugLineNUmbers.MainPage.OnNavigatedTo(NavigationEventArgs e) in
  c:\Users\msmall\Documents\Visual Studio 2013
  \Projects\DebugLineNUmbers\DebugLineNUmbers\MainPage.xaml.cs:line 36

关于visual-studio - winRT 异常堆栈中的行号,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26867558/

相关文章:

visual-studio - 带有 TypeScript 和 node_modules 的 Visual Studio Resharper

ios - 跳过Xcode调试器中的线程指令

eclipse - 如何从 eclipse 连接到 docker 进行调试?

c# - WinRT Flyout 中的数据绑定(bind)未更新

.net - 调试在 Dev Studio 外部构建的 .NET 程序集

visual-studio - Visual Studio 2017 无法识别 .sfproj 类型的项目

debugging - 如何在 Webkit 检查器中保持 "Elements"(DOM) 树打开?

c# - 在 WinRT 应用程序中处理两个、三个、四个手指滑动手势

windows-8 - WinRT 和托管之间的映射如何工作?

javascript - Microsoft Visual Studio 2012 jQuery 0x800200003 Javascript 运行时错误 : Member not found