2015-08-29 9 views
6

Ho una discarica di un .NET App universale in esecuzione su Raspberry Pi 2, Windows 10 IoT:Dove posso ottenere SOS per Windows 10 IoT?

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) 

vedo che utilizza coreclr come Silverlight ha fatto prima.

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 

Facendo un !analyze -v non scaricare automaticamente SOS.

Caricamento la versione di Silverlight di SOS che ho trovato sul mio PC indica la versione sbagliata:

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 
... 

Sembra che SOS was implemented on GitHub ma non riuscivo a trovare un download binario.

Sul mio PC con Visual Studio 2015 Comunità, sono riuscito a trovare un file chiamato mrt100sos.dll nella cartella C:\Program Files\MSBuild\Microsoft\.NetNative\x86\, che si rivela essere un estensione di debug e dice:

0:000> !help 
mrt100sos is a debugger extension DLL designed to aid in debugging .NET Native 
programs. 
... 

che sembrava ottimo. Ma in esecuzione qualsiasi comando genera il seguente messaggio di errore:

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. 

sto a corto di idee ...

Come faccio a eseguire il debug di .NET universale discarica applicazione in un modo che posso vedere il callstack .NET?, che IMHO restituisce nella domanda Dove posso ottenere SOS per Windows 10 IoT?

+3

Questa è una bella domanda. Chiederò in giro. – vcsjones

+0

Ho anche effettuato l'accesso su Raspberry tramite PowerShell, ma un 'dir -s * sos.dll' non ha rivelato nulla. –

+0

Sei in grado di utilizzare anche i comandi nativi di debug? Pensavo che WinDbg richiedesse di usarlo sulla stessa piattaforma su cui era stato creato il dump - quindi avresti avuto bisogno di una versione ARM di WinDbg. – vcsjones

risposta

1

Il CoreCLR può essere ospitato nel multipiattaforma .NET Execution Runtime (DNX).
Quindi, se si installa ASP.NET 5 o Visual Studio 2015, si dovrebbe avere DNX su questo percorso:
%userprofile%\.dnx

Via DNVM install (incluso con DNX), si dovrebbe essere in grado di installare la stessa versione esatta della CoreCLR, ma attualmente questo non funziona per 1.0.23430.0 - quello che abbiamo in UWP10.0.

In ogni caso, SOS a %userprofile%\.dnx\runtimes\dnx-coreclr-win-x86.1.0.0-rc1-update1\bin\sos.dll sembra funzionare, anche se c'è una piccola versione non corrispondente:

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

+0

Ho installato VS 2015, ma non c'è '% userprofile% \. Dnx'folder. Il programma di installazione non fornisce un'opzione per installare DNX. C'è una cartella 'C: \ Programmi \ Microsoft DNX \ Dnvm' ma' dnvm install 1.0.23430.0' restituisce HTTP 404 (che è forse quello che hai espresso con 'non funziona') –

+0

'dnvm install 1.0.0- rc1-update1' ha scaricato qualcosa. C'è un SOS.dll in 'C: \ Programmi (x86) \ Microsoft Strumenti Web \ DNX \ dnx-coreclr-win-x86.1.0.0-beta8 \ bin \ sos.dll' sul mio PC. Ora ho un tipo di problema mscordacwks per 'mscordaccore_x86_arm_4.6.23117.00.dll'. Non sono sicuro se esistono DLL multipiattaforma - e non ho ancora visto una versione ARM di WinDbg. –

Problemi correlati