【问题标题】:How do I get crash logs and stack traces from WinRT apps written in C#?如何从用 C# 编写的 WinRT 应用程序获取崩溃日志和堆栈跟踪?
【发布时间】:2013-03-25 17:28:50
【问题描述】:

我刚刚开始使用 C# 编写的 Windows 应用商店应用程序,它尚未发布到 Windows 应用商店。当我向我的测试团队提供正在开发的应用程序的调试版本并且它崩溃时,他们在哪里可以找到崩溃日志和堆栈跟踪?构建应用程序时我需要做些什么吗?我正在寻找标准解决方案,不是第三方库或向我发送来自最终用户的报告的东西。我来自 ADB logcat 始终包含 Java 堆栈跟踪的 Android 世界,我正在寻找 C#/WinRt 中的等价物。

【问题讨论】:

  • 有一个标准的。您需要自己处理创建日志文件的整个过程。 任何 .NET 应用程序都是如此 您可以获取迷你转储文件:stackoverflow.com/questions/13730250/… 或使用质量报告:blogs.msdn.com/b/windowsstore/archive/2012/06/27/…
  • 我的应用程序尚未在商店中发布,我正在开发中,我无权访问任何 Windows 商店仪表板。
  • 最可能的方法是使用 Windows 中的 EventViewer(查看事件日志)。报告了几乎所有应用程序崩溃。对于 .NET 应用程序(包括 ModernUI),AFAIK 记录了一个非常好的错误描述。
  • 我查看了事件查看器并看到了崩溃,但我没有看到 C# 堆栈跟踪。
  • 文档中的这个页面看起来很有帮助:msdn.microsoft.com/en-us/library/windows/apps/… 看起来我必须在这里注册一个事件处理程序并将堆栈跟踪写入日志文件自己?可怕的部分是它说“但是,不能保证此异常对象的类型、消息和堆栈跟踪与引发的原始异常相匹配”。

标签: c# windows-runtime windows-store-apps crash-reports


【解决方案1】:

崩溃转储将包含调用堆栈等等。

要收集故障转储,首先,执行以下 regedit 脚本:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
"DumpFolder"="C:\\Temp\\CrashDumps"
"DumpCount"=dword:00000002
"DumpType"=dword:00000002

其次,重现崩溃。

第三,通过执行停止故障转储回收:

Windows Registry Editor Version 5.00
[HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Windows\Windows Error Reporting\LocalDumps]
"DumpFolder"=-
"DumpCount"=-
"DumpType"=-

第四,从C:\Temp\CrashDumps

获取故障转储

More info at MSDN.

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2012-06-21
    • 2018-11-27
    • 2015-01-04
    • 1970-01-01
    相关资源
    最近更新 更多