Símbolos de carga de Visual Studio

166

Estoy trabajando en un proyecto ColdFusion desde hace un tiempo, y Visual Studio comenzó a comportarse de manera extraña al menos para mí.

Observé que cuando comencé a depurar, construyó el proyecto, comenzó la implementación y la implementación finalizó y estaba comenzando a cargar símbolos para mi proyecto.

Pero fue muy lento y no sé por qué comenzó a hacer este paso. ¿Qué pude haber hecho?

¿Es necesario este paso de carga de símbolos? ¿Cómo puedo desactivarlo?

En el cuadro de diálogo Herramientas -> Opciones -> Depuración -> Símbolos, no se agrega ninguna ubicación de archivo de símbolos (.pdb). Y señalé en el directorio de depuración de mi proyecto en el campo a continuación, y marqué la casilla de verificación "Buscar en el directorio anterior solo cuando los símbolos son ...". ¿Cómo debo configurar este cuadro de diálogo para desactivar la carga de símbolos?

Miré en la ventana Módulos qué símbolos están cargados, pero no me dice nada. ¿Cuál es el problema?

ingrese la descripción de la imagen aquí

Arnoldino
fuente
3
He intentado cada respuesta en el hilo sin suerte.
Johan Larsson
3
Por lo general, los símbolos deben almacenarse en caché y deben tardar poco o nada de tiempo en cargarse, la única vez que notará que la carga de símbolos es lenta es si los símbolos se están cargando desde servidores de símbolos de Microsoft, lo cual es muy muy lento, por ejemplo (no siempre muy lento pero lento ninguno menos), por lo que una buena manera de intentar solucionar este problema es eliminar el caché de símbolos, simplemente vaya a Depuración -> Opciones -> Depuración -> Símbolos y haga clic en el caché de símbolos vacío, si esto no funciona podría ser otro problema por completo, espero que esto beneficie a alguien ya que la pregunta tiene 3 años (:
daniel

Respuestas:

266

Depurar -> Eliminar todos los puntos de interrupción ( http://darrinbishop.com/blog/2010/06/sharepoint-2010-hangs-after-visual-studio-2010-f5-debugging ) Después de eso, puede usarlos nuevamente, pero hágalo una vez. También eliminará algún tipo de puntos de interrupción "inválidos" y luego los símbolos de carga volverán a ser rápidos. Estuve persiguiendo este problema durante días :(.

peterfoldi
fuente
44
Los usuarios de Visual Web Developer 2010 Express pueden presionar CTRL + MAYÚS + F9 y un mensaje "¿Desea eliminar todos los puntos de interrupción?" aparecerá. Necesita al menos un punto de interrupción activo (no estoy seguro si los puntos de interrupción de fondo problemáticos cuentan, así que configure uno) ¡Gracias! Mucho más rápido ahora ...
Cymen
¡Qué estrella! Muchas gracias.
user489998
De hecho, esto funciona! ¡Increíble! ¿Alguien ya ha informado este error obvio a Microsoft?
real_yggdrasil
Eres un comienzo, esto me ha estado volviendo loco por días. ¡Un millón de gracias!
markpcasey
Bueno, eso fue inesperado! Realmente funcionó. Me salvaste el día, ¡muchas gracias!
tmatuschek
132

Otra razón para la carga lenta es si ha deshabilitado "Habilitar solo mi código" en las opciones de depuración. Para habilitar esto, vaya a:

Tools -> Options -> Debugging -> General -> Enable Just My Code (Managed Only) 

Asegúrese de que esto esté marcado.

nietras
fuente
La opción "Solo mi código" no está disponible en el cuadro de diálogo Opciones en algunas versiones Express de Visual Studio (sin embargo, está en Visual C # 2010 Express), pero se puede cambiar por otros medios: ¿Cómo deshabilito 'Just My Code? 'en Visual Basic 2005 Express? .
Peter Mortensen
3
Este es el que lo arregló para mí ... no la respuesta "Eliminar todos los puntos de interrupción".
Mark Brittingham
Esta es la peor opción en Visual Studio. Mucho mejor simplemente deshabilitar la carga de símbolos para que aún pueda ver lanzamientos de excepciones y marcos de pila que simplemente faltan símbolos. (Solo algunos números difíciles de leer en lugar de un nombre). Por supuesto, generalmente trabajo en el código del sitio web, por lo que hay una gran cantidad de IIS debajo de mí que puede fallar. Normalmente, simplemente deseleccionar los servidores de símbolos de Microsoft (y todos los remotos) como fuente de datos funcionará.
ebyrob
¡Me salvaste el medio día ...! : D
Vaibhav Deshmukh
43

Configurar en Herramientas, Opciones, Depuración, Símbolos.

Puede ver la ventana de salida (vista, salida) para ver qué hace normalmente. Si es realmente lento, eso probablemente significa que está golpeando un servidor de símbolos, probablemente el de Microsoft, para descargar los símbolos que faltan. Esto requiere tres visitas HTTP para cada archivo que no puede encontrar en cada inicio; a veces puede ver esto en la barra de estado en la parte inferior o, por ejemplo, en Fiddler. Puede ver qué módulos tienen símbolos cargados en Depuración, Windows, Módulos mientras está depurando.

Los símbolos significan que obtienes información útil sobre el seguimiento de la pila en ensambles de sistemas y de terceros. Definitivamente los necesita para su propio código, pero creo que se cargan independientemente. Su mejor opción es desactivar las fuentes de símbolos no locales en ese menú y, si está cargando muchos símbolos para conjuntos de sistemas que no necesita depurar, puede desactivar temporalmente la carga de esos para acelerar el inicio de la depuración. pero a menudo son útiles para cargar.

Rup
fuente
3
En el cuadro de diálogo Herramientas -> Opciones -> Depuración -> Símbolos, no se ha agregado ninguna ubicación de archivo de símbolos (.pdb). Y señalé en el directorio de depuración de mi proyecto en el campo a continuación, y marqué la casilla de verificación "Buscar en el directorio anterior solo cuando los símbolos son ...". No sé cómo debo configurar este cuadro de diálogo para desactivar la carga de símbolos.
arnoldino
1
Hmm, no lo sé entonces. Necesita cargar símbolos para su propio código para depurarlo, así que no creo que quiera desactivarlo por completo. Supongo que luego miraría la ventana Módulos para ver cuáles tenían los símbolos cargados, averiguar cuáles necesita realmente y luego eliminar los .pdbs de su caché de símbolos para los que no desea.
Rup
1
Marque 'usar el servidor de símbolos de microsoft', ejecute su código una vez y luego todos los símbolos están en la caché. Ahora puede desmarcar la casilla para aumentar la velocidad.
John Ktejik
1
Deshabilitar el Microsoft Symbol Server en Herramientas -> Opciones -> Depuración -> Símbolos solucionó esto por mí. Antes de esperar 30 segundos para que comenzara la depuración. Ahora es solo un segundo más o menos.
Mike Chamberlain
41

Acabo de tener este problema.

Lo arreglé navegando a:

Herramientas -> Opciones -> Depuración -> Símbolos

Luego, desmarque todas las fuentes no locales para ubicaciones de archivos de símbolos (.pdb)

por ejemplo, Microsoft Symbol Servers y msdl.microsoft.com/download/symbols

JohnMcC
fuente
23

Me enfrenté a un problema similar. En mi caso, configuré _NT_SYMBOL_PATH para que se descargue de los servidores de Microsoft para usar en WinDbg y parece que cuando se configura, Visual Studio lo usará sin ninguna forma de ignorarlo. Eliminar esa variable de entorno resolvió mi problema.

jcarle
fuente
Esto también resolvió el problema para mí (supongo que el bajo número de votos a favor se debe al bajo número de personas que han establecido esta variable ...) ¡Gracias!
Aasmund Eldhuset
Igual que aquí. Pensé que podría desmarcarlo de los símbolos, pero no, la var. Env tiene que ser eliminada / renombrada.
codekaizen
16

Puede probar la siguiente respuesta a la depuración / carga de Visual Studio muy lentamente :

  1. Vaya a Herramientas -> Opciones -> Depuración -> General

  2. COMPRUEBE la marca de verificación junto a "Habilitar solo mi código".

  3. Vaya a Herramientas -> Opciones -> Depuración -> Símbolos

  4. Haga clic en el botón "..." y cree / seleccione una nueva carpeta en algún lugar de su computadora local para almacenar símbolos almacenados en caché. Llamé al mío "Almacenamiento en caché de símbolos" y lo puse en Documentos -> Visual Studio 2012.

  5. Haga clic en "Cargar todos los símbolos" y espere a que los símbolos se descarguen de los servidores de Microsoft, lo que puede demorar un poco. Tenga en cuenta que el botón Cargar todos los símbolos solo está disponible durante la depuración.

  6. Desmarque la marca de verificación junto a "Servidores de símbolos de Microsoft" para evitar que Visual Studio consulte de forma remota los servidores de Microsoft.

  7. Haga clic en Aceptar".

Intente también eliminar todos los puntos de interrupción (Depuración> Eliminar todos los puntos de interrupción),

Consulte también : Visual Studio 2015 RC1 se bloquea en modo de depuración al cargar símbolos

S.S
fuente
6

Para mí, parece estar relacionado con puntos de interrupción, como se indica en la respuesta aceptada. Sin embargo, encontré dos soluciones alternativas que no implicaban eliminar todos los puntos de interrupción:

  • Reiniciar Visual Studio pareció solucionarlo temporalmente.
  • Al hacer clic en el botón "X" para cerrar Visual Studio durante la depuración, aparece el mensaje "¿Desea detener la depuración?" cuadro de mensaje para aparecer; Mientras este cuadro de mensaje está activo, los símbolos se cargan a velocidades normales. Una vez que se cargan todos los símbolos, puede hacer clic en "No" para cancelar el cierre.
Cameron
fuente
3
gracias por esta solución alternativa loca (con el mensaje '¿quieres detener la depuración'?). Primero probé las otras respuestas, pero hasta ahora solo la "X" roja y el truco "¿quieres ...?" están ayudando. gracias, estaba perdiendo la cordura ...
pesófago
2
@que: Je, de nada! Lo descubrí por accidente. Parece que VS tiene un bucle de mensajes separado que se usa para ese diálogo modal, por lo que cada vez que es lento sin ninguna razón, abrir el diálogo a veces ayuda :-)
Cameron
6

Acabo de encontrar este problema. Eliminar puntos de interrupción no funcionó, o al menos no solo. Después de que esto falló, fui a Herramientas> Opciones> Depuración> Símbolos y "Vaciar caché de símbolos"

y luego limpió la solución y la reconstruyó.

Ahora parece estar funcionando correctamente. Entonces, si prueba todas las otras cosas enumeradas, y aún no hace ninguna diferencia, estos bits adicionales de información pueden ayudar ...

SteveL
fuente
2

En mi caso, Visual Studio estaba buscando PDB de terceros en rutas que, en mi máquina, hacían referencia a una unidad óptica. Sin un disco en la bandeja, Windows tardó aproximadamente ~ 30 en fallar, lo que a su vez ralentizó Visual Studio al intentar cargar los PDB desde esa ubicación. Más detalles están disponibles en mi respuesta completa aquí: https://stackoverflow.com/a/17457581/85196

Miguel
fuente
2

Tuve el mismo problema e incluso después de apagar el símbolo de carga, la carga del módulo en Visual Studio fue terriblemente lenta.

La solución fue desactivar el software antivirus (en mi caso, NOD32) o mejor aún, agregar excepciones para que ignore las rutas desde las cuales su proceso está cargando ensamblajes (en mi caso, es la carpeta GAC ​​y la ASP temporal Carpeta de archivos .NET).

dos flores
fuente
2

Mis 2 centavos

Estaba teniendo un problema similar al intentar obtener un Informe de diagnóstico (Visual Studio 2013) en modo de lanzamiento x64 (muestreo de CPU) y aunque se cargaron los símbolos de los archivos dll necesarios, los símbolos de mi ejecutable no se cargaron.

No cambié nada en el menú Símbolos, en su lugar hice algunos cambios dentro de las Páginas de propiedades del hilo de mi ejecutable en el Explorador de soluciones, a saber

Propiedades de configuración / General / Habilitar compilación incremental administrada a SÍ

Propiedades de configuración / Depuración / Combinar entorno a NO

Propiedades de configuración / C / C ++ / Habilitar la información de exploración en SÍ (/ FR)

Propiedades de configuración / Enlace / Habilitar enlace incremental a SÍ (/ INCREMENTAL)

EDITAR: Este último hace el truco

....

Propiedades de configuración / Linker / Debugging / Generar información de depuración a Sí (/ DEBUG)

....

Después de eso funcionó y cargó bien los símbolos. Estoy seguro de que uno o más de los anteriores me sirvieron (aunque no estoy seguro exactamente de cuál) y solo quiero que otros lo sepan e intenten esto.

paz

usuario3374479
fuente
1

Intente hacer clic derecho en uno de los puntos de interrupción y luego elija 'Ubicación'. Luego marque la casilla de verificación 'Permitir que el código fuente sea diferente de la versión original'

Jeremiah Anthony
fuente
1

Opciones de "aceleración" del símbolo de depuración de Visual Studio 2017, suponiendo que ya no se haya vuelto loco con la personalización de opciones:

  1. En Tools -> Options -> Debugging -> Symbols
    un. Habilite la opción "Microsoft Symbol Server"
    b. Haga clic en "Vaciar caché de símbolos"
    c. Establezca su caché de símbolos en un lugar fácil de encontrar, como C:\dbg_symbolso%USERPROFILE%\dbg_symbols
  2. Después de volver a ejecutar Debug, deje que cargue todos los símbolos una vez, de principio a fin, o tanto como sea razonablemente posible.

1A y 2 son los pasos más importantes. 1B y 1C son solo cambios útiles para ayudarlo a realizar un seguimiento de sus símbolos.

Después de que su aplicación haya cargado todos los símbolos al menos una vez y la depuración no haya terminado prematuramente, esos símbolos deben cargarse rápidamente la próxima vez que se ejecute la depuración.

Me di cuenta de que si cancelo una ejecución de depuración, tengo que volver a cargar esos símbolos, ya que supongo que se "limpian" si se introducen recientemente y se cancelan de repente. Entiendo la razón fundamental para ese tipo de flujo, pero en este caso parece mal pensado.

kayleeFrye_onDeck
fuente
0

Desmarcar "Habilitar la depuración de JavaScript para ASP.NET (Chrome e IE)" en Herramientas-> Opciones-> Depuración-> General resolvió mi caso sin disponibilidad para iniciar el depurador VS2017 con puntos de interrupción preestablecidos.

Angel_D
fuente
0

Lo único que funcionó para mí fue cambiar el tipo de código.

En la ventana Adjuntar al proceso , cambié la selección Adjuntar a: para determinar automáticamente el tipo de código a depurar , luego se alcanzaron mis puntos de interrupción.

Anteriormente solo tenía el código nativo seleccionado.

apohl
fuente
0

Tuve un problema similar en el que Visual Studio sigue cargando el símbolo y se atascó.

Resulta que agregué algunos "argumentos de línea de comando" en las opciones de depuración, y uno de los parámetros no es válido (se supone que debo pasar algunos valores). ingrese la descripción de la imagen aquí

Después de eliminar el parámetro adicional, comienza a funcionar nuevamente.

Hainan.Z
fuente