Windows 10例外不包括行号

时间:2016-01-17 00:05:43

标签: c# windows-10 win-universal-app

我有一个Windows 10通用应用程序,在Exception对象.ToString()方法中不包含行号。

如果我有像

这样的方法
private void ThrowException()
{
    try { throw new Exception("Test"); }
    catch (Exception e) { Debug.WriteLine(ex.ToString()); }
}

当我检查输出时,我看不到抛出异常的行号。我在项目中添加了一个Post Build事件:

xcopy $(ProjectDir)$(OutDir)*.pdb $(ProjectDir)$(OutDir)AppX\*.pdb

pdb文件位于Debug文件夹中,但不在AppX文件夹中。

我错过了什么?感谢名单,

修改

我创建了一个新项目来测试它。我有一个页面(MainPage.xaml)。以下是文件背后的代码:

using System;
using Windows.UI.Popups;
using Windows.UI.Xaml.Controls;
using Windows.UI.Xaml.Navigation;

namespace App2
{
    public sealed partial class MainPage : Page
    {
        public MainPage()
        {
            InitializeComponent();
        }

        protected override void OnNavigatedTo(NavigationEventArgs e)
        {
            base.OnNavigatedTo(e);
            ThrowException();
        }

        private async void ThrowException()
        {
            try { throw new Exception("Test"); }
            catch (Exception ex) { await new MessageDialog(ex.ToString()).ShowAsync(); }
        }
    }
}

和以前一样,我添加了post build事件宏:

xcopy $(ProjectDir)$(OutDir)*.pdb $(ProjectDir)$(OutDir)AppX\*.pdb

我在Release配置中编译并保证"使用.NET本机工具链编译"选项已被选中。

C:\ VS2015 \ App2 \ App2 \ bin \ x86 \ Release \ AppX中的Appx文件夹确实存在App2.dll和App2.pdb文件。

当我运行应用程序时,我在弹出对话框中得到以下内容:

System.Exception: Test
  at SharedLibrary!<BaseAddress>+0x122d16

感谢名单

编辑2

我也在没有本机工具链的Debug中尝试过这个。在这种情况下,我没有在Debug

下的AppX文件夹中看到pdb文件

在这种情况下的信息是:

System.Exception: Test
  at App2.MainPage.<ThrowException>d_2.MoveNext()

感谢名单

1 个答案:

答案 0 :(得分:2)

我在原始答案中犯了一个错误,并且使用了即时窗口输出,而不是代码可以从异常对象获得的内容。

经过更多研究后,似乎不再支持此了。

请参阅corefx #1420及相关的corefx #1797

此外,还有关于SO的参考:How to get StackTrace without Exception in Windows Universal 10 App