97 votos

Cómo hacerlo "Activar stepping fuente .NET Framework"?

Actualización 22 de Febrero De 2013: Microsoft Connect de entrada en la nota de Alok Shriram (Administrador de programas, Bibliotecas de clases Base .NET Framework) que la cuestión que ahora debe ser resuelto. El Conectar la entrada está marcado como Resuelto (Fijo):

Este problema que ahora debe ser corregido. Hemos publicado una actualización de fuentes de referencia. Por favor, háganoslo saber en caso de que su problema aún no se soluciona.

Año y medio.

Enlaces De Bonificación

Pregunta Original

¿Cómo puedo activar .NET framework fuente de entrar en Visual Studio 2010?


Nota: Esta pregunta es de una sola pieza de un todo mayor:


Visual Studio 2010 viene con una nueva característica:

  • Herramientas, Opciones De Depuración, En General, Para Activar .NET Framework fuente de pisar

Screenshot of options menu

Siguiendo las instrucciones en la página de MSDN Cómo: Depurar .NET Framework de la Fuente:

Para activar .NET Framework fuente de depuración

  1. En el Herramientas menú, haga clic en Opciones.

  2. En las Opciones del cuadro de diálogo, haga clic en la Depuración de la categoría.

  3. En la General del cuadro de diálogo, seleccione las casillas de verificación siguientes:

    • Activar .NET Framework fuente de pisar
    • Habilitar el servidor de origen de apoyo

Yo hago esto:

Screenshot of options menu, highlighting the relevant options selected

Nota: se le nota, como la página de MSDN notas, y como me di cuenta de que la comprobación de Habilitar .NET Framework fuente de pisar automáticamente desmarque **Habilitar Sólo Mi Código (Administrado). También he habilitado los mensajes de diagnóstico de la fuente de soporte del servidor.

Activar estas opciones establecen automáticamente un símbolo de caché de la ubicación de descarga por mi:

Screenshot of options menu, showing cache directory (highlighted)

Nota: El Servidor de Símbolos de Microsoft entrada ya está presente (y no se puede quitar).


La página de MSDN dice a la carga de los símbolos:

Para cargar Marco símbolos mediante los Módulos de ventana

  1. En los Módulos de la ventana, haga clic en un módulo para el que los símbolos no están cargados. Usted puede saber si los símbolos están cargados o no, mirando los Símbolos de Estado de la columna.

  2. Punto de Carga de Símbolos y haga clic en Servidores de Símbolos de Microsoft para descargar los símbolos del público de Microsoft, servidor de símbolos o Ruta de acceso de Símbolos para cargar desde un directorio donde se ha almacenado previamente símbolos.

Yo intente esto:

enter image description here

y, a continuación, todos los símbolos están cargados:

Screenshot of modules window, as described above

He estado sentado sobre un breakpoint, que está a punto de llamar .NET framework de código:

Screenshot of code, transcribed below

protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
    base.ScaleControl(factor, specified);

Presionando F11 hace que el depurador simplemente saltar a la siguiente línea:

Screenshot of code, transcribed below

protected override void ScaleControl(SizeF factor, BoundsSpecified specified)
{
    base.ScaleControl(factor, specified);

    //Record the running scale factor used
    this.scaleFactor = new SizeF(
            this.scaleFactor.Width * factor.Width,
            this.scaleFactor.Height * factor.Height);

¿Cómo puedo activar .NET Framework fuente de entrar en Visual Studio 2010?


Estoy sentado en un breakpoint en mi código. Yo intente hacer doble clic en una función más arriba en la pila de llamadas. Esto, espero, me permite saltar a el .NET de código:

Screenshot of call stack

Excepto que no funciona: el Visual Studio me dice que no hay ninguna fuente disponible:

Screenshot of error message saying No Source Available

¿Cómo puedo activar .NET Framework fuente de entrar en Visual Studio 2010?


Si me cambio para el desmontaje de la vista antes de intentar paso a paso .NET de código (Debug -> Windows -> Desmontaje), puedo ver un call en el .NET de código:

Screenshot of code

Y cuando lo hago, me acaban de depuración de un desmontaje de System.Windows.Forms.ScaleControl:

Screenshot of disassembly window

Que no es la misma, o tan útil como, ser capaz de entrar en el .NET Framework de código fuente.

¿Cómo puedo activar .NET Framework fuente de entrar en Visual Studio 2010?


El símbolo de la ruta de la caché en mi pc no contenga símbolos de la caché de archivos:

Screenshot of folder listing

Por lo que se está descargando pdb archivos de símbolos, pero rechazar el uso de ellos.

¿Cómo puedo activar .NET Framework fuente de entrar en Visual Studio 2010?


Leppie me sugirió que comprobar el Debug de registro (con el registro de depuración de la ventana abierta; de lo contrario no registro nada):

Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'

Anteriormente en el log veo que la carga de símbolos para System.Windows.Forms.dll:

Loaded 'C:\Windows\assembly\GAC_MSIL\System.Windows.Forms\2.0.0.0__b77a5c561934e089\System.Windows.Forms.dll', Symbols loaded.

Screenshot of process monitor

Así que es encontrar mi símbolos, pero alegando que no podía encontrar.

¿Cómo puedo activar .NET Framework fuente de entrar en Visual Studio 2010?


Un chico de Microsoft Italia sugiere apagar Requieren los archivos de origen para que coincida exactamente con la versión original:

Screenshot of options window

Que no se fije.

¿Cómo puedo activar .NET Framework fuente de entrar en Visual Studio 2010?


Se ha sugerido que hay un bug con Microsoft del servidor de origen .NET Framework 4.0. A raíz de esa propuesta, me cambié el proyecto de destino .NET Framework 3.5:

Screenshot showing selection of .NET Framework 3.5

Que no se fije.

¿Cómo puedo activar .NET Framework fuente de entrar en Visual Studio 2010?


Alguien, en algún lugar de brazos cruzados preguntó si otra persona que experimenta el mismo problema que se está utilizando la versión de 64 bits del depurador. Ahora, no hay tal cosa como una versión de 64 bits de Visual Studio, pero traté de conmutación mi proyecto de AnyCPU para x86 (que estaba siendo JITed para x64), en el caso de Microsoft no es compatible con procesadores de 64 bits:

Screenshot showing selection of Platform Target x86

Que no se fije:

Step into: Stepping over method without symbols 'System.Windows.Forms.Form.ScaleControl'

¿Cómo puedo activar .NET Framework fuente de entrar en Visual Studio 2010?


Ver también

30voto

Matt Smith Puntos 6843

El PDBs para recorrer el código fuente sólo son publicados para el RTM y los Service Packs. Como tal, cuando la actualización de seguridad sale y se modifica la dll está intentando depurar, será causa de origen pisar para no trabajar (que es, obtendrás el "No hay ninguna fuente Disponible" con un gris "Examinar para encontrar la Fuente").

Sin embargo, una vez que haya realizado todos los ajustes apropiados, puede utilizar la siguiente solución. La solución es esencialmente para buscar las actualizaciones de seguridad que causó la dll a cambiar y, a continuación, eliminarlos. Esto tiene la desventaja obvia de tener actualizaciones de seguridad removida de su máquina.

Solución

  1. Identificar qué dll desea depurar (por ejemplo, System.Windows.Forms.dll)
  2. Durante la depuración, abrir los Módulos de la ventana en Visual studio, busque la Versión de la columna. Si la versión no es la RTM o la versión de paquete de Servicio, entonces usted necesita para hacer que el flujo de trabajo. Normalmente la RTM dll decir "built by: RTMRel". Mientras que un archivo dll que fue parte de una actualización de seguridad dicen que "built by: RTMGDR". Anote el número de versión (por ejemplo 4.0.30319.269 built by: RTMGDR)
  3. Ahora, queremos encontrar la actualización que ha creado esta versión. ¿Esta buscando la dll y el número de versión en support.microsoft.com/kb/ Por ejemplo, hice la siguiente búsqueda en google: site:support.microsoft.com/kb System.Windows.Forms.dll 4.0.30319.269
  4. La búsqueda debe subir información acerca de una actualización. Nota el número de KB en la barra de direcciones. En mi ejemplo la dirección de http://support.microsoft.com/kb/2604121, por lo que KB2604121, es lo que nos interesa.
  5. Vaya a Panel de Control->Programas y Características, y haga clic en "Ver Actualizaciones Instaladas"
  6. Encontrar una actualización que muestra el número de KB (puede usar la búsqueda en la parte superior del cuadro de la derecha).
  7. Desinstalar la actualización.
  8. Repita este proceso para esta misma dll hasta que la dll es volver a su RTMRel versión o versión SP. Por ejemplo, para System.Windows.Forms.dll tuve que quitar KB2686827, KB2604121, KB2518870 antes fue de regreso a la RTMRel versión.

Usted necesitará hacer esto para cada dll dentro de el .NET framework que usted se preocupa acerca de la depuración.

Una vez hecho esto, establecer un breakpoint dentro de el .fuente neta (por ejemplo, ir a los puntos de corte de la ficha, por ejemplo, New->Descanso en la Función, y entrar en el Sistema.Windows.Las formas.Forma.Formulario) o de paso en uno de los .net métodos en que dll.

5voto

yo hal Puntos 1949

Mientras que por desgracia no es un problema de Microsoft, como Leppie señaló (y tengo el mismo resultado ver

cabe señalar que su intento de fallaría de todas formas, desde que se hace referencia:

  • Servidor De Símbolos De Microsoft

en lugar de:

  • referencesource.microsoft.com/symbols

Vea las preguntas más frecuentes/sección de Solución de problemas de Configuración de Visual Studio para Depurar .NET Framework de Código Fuente

3voto

leppie Puntos 67289

He encontrado la respuesta, creo yo.

He seguido lo que estaba sucediendo en el Fiddler. Parece que sólo los símbolos están actualmente disponibles, y no de origen.

Cuando VS intenta cargar los símbolos de la 'referencesource' servidor se produce un error (404). Como esto no funciona, creo que no se puede asignar a los archivos de origen en el servidor.

http://referencesource.microsoft.com/symbols/mscorlib.pdb/ED96A7F38A2940F39B9CA7AD9BC5CB671/mscorlib.pdb

Después de que el anterior fracaso, intenta algunas servidor llamado 'msdl' donde se encuentra el real PDB (pero parece que este no tienen código fuente de información).

http://msdl.microsoft.com/download/symbols/mscorlib.pdb/ED96A7F38A2940F39B9CA7AD9BC5CB671/mscorlib.pd_

Con todo, parece ser un (temporal) de Microsoft problema con sus servidores.

Estoy seguro de que yo tenía algo de código fuente de un tiempo atrás. Pero ahora no está funcionando.

Edición:

He probado con varios .Las versiones, todas el mismo resultado. :(

1voto

watbywbarif Puntos 1253

Por ahora no está funcionando si ha instalado SP1. Éstos son algunos comentarios acerca de la forma de un problema MS: http://social.msdn.microsoft.com/Forums/en-US/refsourceserver/thread/41388c7b-582b-4e3f-8178-3d38a3c99639

-1voto

nandin Puntos 1169

Si desea depurar código fuente abierto (por ejemplo, el paquete nuget), puede agregar esta dirección url a la lista de servidores de símbolo

http://SRV.symbolsource.org/pdb/Public

http://www.symbolsource.org/public/home/VisualStudio

Iteramos.com

Iteramos es una comunidad de desarrolladores que busca expandir el conocimiento de la programación mas allá del inglés.
Tenemos una gran cantidad de contenido, y también puedes hacer tus propias preguntas o resolver las de los demás.

Powered by:

X