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

时间:2015-08-29 22:05:53

标签: c# windbg sos windows-10-iot-core coreclr

我在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)

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

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

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

加载我在电脑上找到的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
...

似乎是SOS was implemented on 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.
...

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

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.

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

如何以可以看到.NET callstack的方式调试.NET通用应用转储?,IMHO导致问题我在哪里可以获得Windows 10的SOS的IoT吗

1 个答案:

答案 0 :(得分:1)

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

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

无论如何,即使小版本不匹配,%userprofile%\.dnx\runtimes\dnx-coreclr-win-x86.1.0.0-rc1-update1\bin\sos.dll的SOS似乎也能正常工作:

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