2011-07-08 24 views
7

No puedo hacer que Visual Studio 2010 SP1 entre en ninguna clase de .NET Framework, he encontrado muchas guías en Internet, pero ninguna de ellas funciona ...Problema con símbolos: no se puede ingresar al código .NET

Description

Aquí está la ventana de salida de lo que dice:

Step into: Stepping over method without symbols 'System.Collections.Generic.SortedSet<Shared.Optimization.Solution<GaTest.CurveFitSimplex,double>>.Remove' 

Aquí es contenido de la ventana entera de salida:

'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\mscorlib\v4.0_4.0.0.0__b77a5c561934e089\mscorlib.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities\10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Windows.Forms\v4.0_4.0.0.0__b77a5c561934e089\System.Windows.Forms.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Drawing\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Drawing.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System\v4.0_4.0.0.0__b77a5c561934e089\System.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.HostingProcess.Utilities.Sync\10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.HostingProcess.Utilities.Sync.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\assembly\GAC_MSIL\Microsoft.VisualStudio.Debugger.Runtime\10.0.0.0__b03f5f7f11d50a3a\Microsoft.VisualStudio.Debugger.Runtime.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\Lu4\documents\visual studio 2010\Projects\Estimator\GaTest\bin\Debug\GaTest.vshost.exe', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Core\v4.0_4.0.0.0__b77a5c561934e089\System.Core.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml.Linq\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.Linq.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Data.DataSetExtensions\v4.0_4.0.0.0__b77a5c561934e089\System.Data.DataSetExtensions.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\Microsoft.CSharp\v4.0_4.0.0.0__b03f5f7f11d50a3a\Microsoft.CSharp.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_32\System.Data\v4.0_4.0.0.0__b77a5c561934e089\System.Data.dll', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Xml\v4.0_4.0.0.0__b77a5c561934e089\System.Xml.dll', Symbols loaded. 
The thread 'vshost.NotifyLoad' (0x1444) has exited with code 0 (0x0). 
The thread '<No Name>' (0x3d8) has exited with code 0 (0x0). 
The thread '<No Name>' (0x10a8) has exited with code 0 (0x0). 
The thread 'vshost.LoadReference' (0xc40) has exited with code 0 (0x0). 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\Lu4\documents\visual studio 2010\Projects\Estimator\GaTest\bin\Debug\GaTest.exe', Symbols loaded. 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Users\Lu4\documents\visual studio 2010\Projects\Estimator\GaTest\bin\Debug\Shared.dll', Symbols loaded. 
Step into: Stepping over method without symbols 'System.Collections.Generic.SortedSet<Shared.Optimization.Solution<GaTest.CurveFitSimplex,double>>.Remove' 
'GaTest.vshost.exe' (Managed (v4.0.30319)): Loaded 'C:\Windows\Microsoft.Net\assembly\GAC_MSIL\System.Configuration\v4.0_4.0.0.0__b03f5f7f11d50a3a\System.Configuration.dll', Symbols loaded. 
+5

Los símbolos para la actualización de .NET 4.0 que vino con SP1 aún no se han enviado al servidor de origen. "Par de semanas". http://social.msdn.microsoft.com/Forums/en-US/refsourceserver/thread/5cfc29b6-aa99-4bef-99c2-67ff3b94eb4b –

+0

¡Gracias por la información! – Lu4

Respuesta

1

The article mencionado por Philipp Munin explica paso a paso cómo ser capaz de entrar en (depurar) el código de .NET Framework. Sin embargo, si no desea descargar todo el marco y desea ingresar a un ensamblaje en particular, se puede seguir un procedimiento un poco más fácil:

(estos se prueban en VS2015 donde las opciones de depuración son ligeramente diferentes a las de VS2010)

  1. Asegúrese de que puede entrar en otro código que su propio:

    de depuración → Opciones → general

    • Habilitado Sólo mi código se debe borrar
    • Habilitar .NET Framework escalonamiento de origen debe ser revisado (esto dará lugar a una descarga de símbolos de vez en cuando cuando se monta en proceso, pero puede ser cancelado)
    • Paso sobre las propiedades y operadores debe ser limpiado
    • apoyo servidor de origen Habilitado debe comprobarse
  2. Asegúrese de que se cargan símbolos para el ensamblado (por ejemplo,System.Data.dll)

    • Ir para depurar → → Módulos de Windows
    • filtro para System.Data.dll
    • Haga clic derecho en la configuración de símbolos → → comprobar servidores de símbolos de Microsoft
    • Haga clic de nuevo → símbolos de carga

Es posible que no tenga claros los servidores de símbolos de Microsoft, ya que los símbolos se almacenaron en caché.

Ahora puede Entrar en los métodos de clases definidos en System.Data.dll.

Efecto secundario notable: si las excepciones están habilitadas (lanzadas), muchas excepciones pueden interrumpir el inicio de la aplicación (excepciones "ocultas" dentro del marco). Esto se puede resolver desmarcando tipos de excepción particulares o adjuntando manualmente (o Reattaching) después de que se haya iniciado la aplicación.

5

Respuesta corta:http://referencesource.microsoft.com/downloadsetup.aspx

Respuesta larga:

Generalmente archivos PDB son sólo mapas entre el código fuente y el código de ensamblaje IL. Para que funcione, debe tener el código fuente descargado en la ubicación "codificada" en PDB. Puede encontrar esta ubicación solo viendo el archivo PDB en el visualizador de texto. Por ejemplo si usted ve System.pdb, verá que las líneas como:

f: \ dd \ NDP \ fx \ src \ net \ system \ net \ websockets \ websocketconnectionstream.cs f: \ dd \ ndp \ fx \ src \ services \ monitoring \ system \ diagnosticts \ eventloginternal.cs

Existen algunos métodos poco documentados para anular este comportamiento, pero es otra historia. También debe asegurarse de haber configurado correctamente la configuración de depuración en su estudio visual: Tools\Options\Debugging\General

Puede descargar el código fuente y las instrucciones detalladas en here.

+0

Aquí hay un artículo adicional sobre lo mismo: http://blogs.microsoft.co.il/blogs/arik/archive/2010/07/12/step-into-net-framework-4-0-source-code.aspx –

+0

los enlaces iniciales dentro de la respuesta ya no son válidos. Sin embargo, el enlace en el comentario apunta a una guía muy útil para habilitar el código fuente de .NET Framework. – Alexei

Cuestiones relacionadas