【问题标题】:Line numbers in stack traces for UWP appsUWP 应用的堆栈跟踪中的行号
【发布时间】:2016-07-03 00:10:08
【问题描述】:

我在 Visual Studio 2015 中创建了一个空白的通用 Windows 应用项目。

我添加了类似的内容:

try {
    string foo = null;
    int len = foo.Length;
} catch (Exception ex) {
    System.Diagnostics.Debug.WriteLine(ex);
}

我得到如下堆栈跟踪:

Exception thrown: 'System.NullReferenceException' in TestStackTraces.exe
System.NullReferenceException: Object reference not set to an instance of an object.
at TestStackTraces.App.OnLaunched(LaunchActivatedEventArgs e)

即,没有行号。

如何显示行号?

【问题讨论】:

  • @TroelsLarsen,实际上,在 WIn10/UWP 上不再支持此功能。 stackoverflow.com/questions/34833573/…
  • 这是因为 UWP 中的 U。通用意味着您的目标是 CLR 的 .NETCore 版本,目前是 CoreCLR。它更小,因此更容易移植到不同的平台。两者都导致缺少的功能,您没有可以在运行时从 PDB 文件中读取行号信息的 COM 组件。桌面版 CLR 中的 Diasymreader.dll。 corefx 团队中似乎没有人知道这一点,嗯,有点吓人。微软丢失了很多基础知识,营业额很高,也许他们应该问更多 SO 问题:)

标签: c# visual-studio win-universal-app .net-core


【解决方案1】:

这似乎不再受支持。我在这里重新发布我的答案,因为当我搜索另一个问题的答案时,很难在搜索结果中找到它。希望这个问题能帮助人们更轻松地找到这些信息。

参考:windows 10 exceptions not including line numbers

其他信息:

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

另外,在 SO 上有这个参考:How to get StackTrace without Exception in Windows Universal 10 App

【讨论】:

    猜你喜欢
    • 2011-02-19
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-12-12
    • 2014-10-22
    • 2018-12-03
    • 1970-01-01
    相关资源
    最近更新 更多