C# 在哪里可以获取Windows 10物联网的SOS?

C# 在哪里可以获取Windows 10物联网的SOS?,c#,windbg,sos,windows-10-iot-core,coreclr,C#,Windbg,Sos,Windows 10 Iot Core,Coreclr,我有一个运行在Raspberry Pi 2、Windows 10 IoT上的.NET通用应用程序的转储: 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

我有一个运行在Raspberry Pi 2、Windows 10 IoT上的.NET通用应用程序的转储:

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

加载我在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
...
似乎是这样,但我找不到二进制下载

在我使用Visual Studio 2015 Community的PC上,我可以在文件夹
C:\Program Files\MSBuild\Microsoft\.NetNative\x86\
中找到一个名为
mrt100sos.dll
的文件,它是一个调试扩展名,上面写着:

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通用应用程序转储,使其能够看到.NET调用堆栈?,这会导致一个问题我在哪里可以获得Windows 10 IoT的SOS?CORECRL可以托管在跨平台.NET执行运行时(DNX)中。
因此,如果您安装ASP.NET 5或Visual Studio 2015,您应该在以下路径上安装DNX:
%userprofile%\.dnx

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

无论如何,位于
%userprofile%\.dnx\runtimes\dnx-coreclr-win-x86.1.0.0-rc1-update1\bin\SOS.dll的SOS似乎可以工作,即使存在小版本不匹配:

SOS的版本与正在调试的CLR的版本不匹配。请
加载与正在调试的CLR版本相匹配的SOS版本。
CLR版本:4.6.23430.0

SOS版本:4.6.23516.1

这是一个非常好的问题。我会四处打听的。我也通过PowerShell登录了Raspberry,但是一个
dir-s*sos.dll
没有透露任何信息。你甚至可以使用本机调试命令吗?我认为WinDbg要求您在创建转储的同一平台上使用它,因此您需要WinDbg的ARM版本。mrt100_app.dll是一个.NET本机运行时支持dll。它由Redmond中的商店服务器添加到包中。呵呵,可能出什么问题了?在将.NET本机应用部署到应用商店之前对其进行测试是至关重要的,这就是为什么项目有此选项的原因。@vcsjones:此问题的副本已发布为。谢谢你的建议。希望我能在那里收到更改通知,以便在此提供答案。我安装了VS 2015,但没有
%userprofile%\.dnx
文件夹。安装程序不提供安装DNX的选项。有一个文件夹
C:\Program Files\Microsoft DNX\Dnvm
,但是
Dnvm安装1.0.23430.0
返回HTTP 404(这可能是您用“不工作”表示的)
Dnvm安装1.0.0-rc1-update1
下载了一些内容。在我的电脑上,
C:\ProgramFiles(x86)\Microsoft Web Tools\DNX\DNX-coreclr-win-x86.1.0.0-beta8\bin\SOS.dll
中有一个SOS.dll。我现在在
mscordacore\u x86\u arm\u 4.6.23117.00.dll中遇到了类似mscordacwks的问题。不确定是否存在这样的跨平台DLL——而且我还没有看到WinDbg的ARM版本。