我在哪里可以获得Windows 10 IoT的SOS?

Tho*_*ler 6 c# windbg sos coreclr windows-10-iot-core

我有一个在Raspberry Pi 2,Windows 10 IoT上运行的.NET Universal App的转储:

0:000> vertarget
Windows 10 Version 10240 MP (4 procs) Free ARM (NT) Thumb-2
Product: WinNt, suite: SingleUserTS
Built by: 10.0.10240.16384 (th1.150709-1700)
Run Code Online (Sandbox Code Playgroud)

我看到它coreclr像之前使用的Silverlight一样.

0:000> lm vm coreclr
start    end        module name
6e430000 6e7fd000   coreclr    (export symbols)       coreclr.dll
    Loaded symbol image file: coreclr.dll
    ...
    Timestamp:        Thu Jul 16 21:37:39 2015 (55A88693)
    ...
    File version:     4.6.23117.0
    Product version:  4.0.23117.0
Run Code Online (Sandbox Code Playgroud)

执行a !analyze -v不会自动下载SOS.

加载我在PC上找到的SOS Silverlight版本表示版本错误:

0:000> .load C:\Program Files\Microsoft Silverlight\5.1.20513.0\sos.dll

0:000> !threads
The version of SOS does not match the version of CLR you are debugging.  Please
load the matching version of SOS for the version of CLR you are debugging.
CLR Version: 4.6.23117.0
SOS Version: 5.1.20513.0
Failed to load data access DLL, 0x80004005
...
Run Code Online (Sandbox Code Playgroud)

似乎SOS是在GitHub上实现的,但我找不到二进制下载.

在我使用Visual Studio 2015社区的PC上,我可以找到一个mrt100sos.dll在该文件夹C:\Program Files\MSBuild\Microsoft\.NetNative\x86\中调用的文件,该文件最终成为调试扩展,并说:

0:000> !help   
mrt100sos is a debugger extension DLL designed to aid in debugging .NET Native
programs.
...
Run Code Online (Sandbox Code Playgroud)

这听起来很棒.但运行任何命令会导致以下错误消息:

0:000> !threads
Failed to find runtime DLL (mrt100_app.dll), 0x80004005
Extension commands need mrt100_app.dll in order to have something to do.
Run Code Online (Sandbox Code Playgroud)

我的想法已经不多了......

如何以可以看到.NET调用堆栈的方式调试.NET通用应用程序转储?,恕我直言的结果提出了问题我在哪里可以获得Windows 10物联网的SOS?

Whi*_*awk 1

CoreCLR 可以托管在跨平台.NET 执行运行时 (DNX) 中。
因此,如果您安装 ASP.NET 5 或 Visual Studio 2015,则应在此路径上安装 DNX:
%userprofile%\.dnx

通过DNVM install(包含在 DNX 中),您应该能够安装完全相同版本的 CoreCLR,但目前这不适用于 1.0.23430.0(我们在 UWP10.0 中拥有该版本)。

不管怎样,SOS at%userprofile%\.dnx\runtimes\dnx-coreclr-win-x86.1.0.0-rc1-update1\bin\sos.dll似乎可以工作,即使有一个小的版本不匹配:

The version of SOS does not match the version of CLR you are debugging. Please load the matching version of SOS for the version of CLR you are debugging. CLR Version: 4.6.23430.0 SOS Version: 4.6.23516.1