¿Cómo puedo remediar el "El punto de interrupción no se alcanzará actualmente? No se han cargado símbolos para este documento ". ¿advertencia?

1575

La aplicación de escritorio C # en la edición express funcionó y no funcionó 5 segundos después.

Intenté lo siguiente:

  • Asegúrese de que la configuración de depuración, el indicador de depuración y la información de depuración completa estén configurados en todos los ensamblajes.
  • Eliminar todas las carpetas bin y obj y todas las DLL relacionadas con el proyecto desde mi máquina completa.
  • Recree proyectos que causen el problema desde cero.
  • Reiniciar.

Tengo dos proyectos WinForms en la solución. Uno de ellos carga la información de depuración, uno no. Ambos se refieren al ensamblaje en el que estoy tratando de obtener información de depuración exactamente de la misma manera en el archivo del proyecto. ¿Algunas ideas?


Quiero agregar aquí, principalmente para mí cuando vuelva a revisar esta pregunta, que los símbolos no se cargan hasta que se carga el ensamblaje, y el ensamblaje no se carga hasta que se necesita. Si el punto de interrupción está en una biblioteca que solo se usa en una función en su ensamblaje principal, los símbolos no se cargarán (y mostrará el punto de interrupción como no alcanzado) hasta que se llame a esa función.

Cazador de instancias
fuente
119
Al depurar, vaya a la vista Depuración, Windows, Módulos. Esto mostrará información sobre los módulos cargados y el estado de los símbolos. Puede hacer clic derecho en un módulo e intentar cargar los símbolos desde otra ubicación.
Polyfun
14
La edición Express no tiene vista de Módulos.
Instancia Hunter
12
Buen punto sobre ensamblajes no cargados hasta que sea necesario. El depurador mostrará que no se alcanzará el punto de interrupción, pero la pantalla cambiará / su punto de interrupción se alcanzará una vez que se cargue el ensamblaje. Una solución cursi para este problema de la interfaz de usuario sería hacer una llamada al ensamblaje al inicio del programa para forzar la carga del ensamblado.
Tim Coker
1
Tuve el mismo problema y noté que para esta configuración de compilación que no tenía <DebugSymbols>true</DebugSymbols>debajo en VS2015 lo agregué manualmente y funcionó bien.
kuskmen
44
La eliminación del archivo .suo podría haber resuelto este feo problema en mi proyecto
Roland

Respuestas:

1083

Comience a depurar, tan pronto como llegue a un punto de interrupción o lo use Debug > Break All, úselo Debug > Windows > Modules. Verá una lista de todos los ensamblajes que se cargan en el proceso. Busque el que desea obtener información de depuración. Haga clic con el botón derecho y seleccione Información de carga de símbolo. Obtendrá un cuadro de diálogo que enumera todos los directorios donde buscó el archivo .pdb para el ensamblado. Verifique esa lista con la ubicación real .pdb. Asegúrate de que no encuentre uno viejo.

En proyectos normales, el ensamblado y su archivo .pdb siempre deberían haber sido copiados por el IDE en la misma carpeta que su .exe. La carpeta bin \ Debug de tu proyecto. Asegúrate de eliminar uno del GAC si has estado jugando con él.

Hans Passant
fuente
44
Efectivamente, ese fue el problema en mi caso. Tuvimos una postcompilación que hizo que no se considerara 'Código de usuario' ... ahora, tengo que ver qué pasa con eso, pero he confirmado que sin las modificaciones posteriores a la compilación, los símbolos se cargan. @Hans gracias, me salvó algunos buenos minutos! envía una cerveza virtual
eglasius
29
La pregunta es sobre la edición express, a la cual esta respuesta no se aplica, desafortunadamente. En realidad, ninguna de las respuestas funciona para mí, también intenté eliminar la carpeta Debug y reconstruirla.
Nicolas Raoul
3
Microsoft Visual Studio Express 2013 para Web no tiene la opción de depuración de módulos de Windows. ¿Cómo usar arreglar esto en este caso?
Andrus
3
Como sugerencia, active sus excepciones para que se rompa donde desee (si no puede poner un punto de interrupción al comienzo del proceso) ... Luego siga el proceso recomendado de Han de Depuración> Windows> Módulos. Busque el proyecto en el que estaba tratando de entrar y mire la RUTA. si dice "C: \ windows \ assembly", entonces apunta a un dll GAC y NO al proyecto ...
Andy Danger Gagne
55
Tenía la configuración de la solución activa de mi solución establecida en Release, cambiándola nuevamente a Debug para resolver mi problema. Esta respuesta me ayudó a "recordar" qué buscar
miércoles,
436

Primero intente reconstruir su proyecto haciendo clic con el botón derecho en el proyecto> Reconstruir Si eso no funciona, intente limpiar el proyecto (haga clic con el botón derecho en el proyecto> limpiar)

Si eso no funcionó, verifique esto:

  1. Haga clic derecho en su proyecto
  2. Seleccione [Propiedades]
  3. Seleccione la pestaña [Compilar]
  4. Asegúrese de que [Definir constante de DEPURACIÓN] y [Definir constante de RASTREO] estén marcados
  5. Asegúrese de que [Optimizar código] esté desmarcado
  6. Haga clic en el botón [Avanzado] en la parte inferior de la pestaña Construir
  7. Asegúrese de que [Información de depuración:] esté establecida en [completa]
  8. Haga clic en [Aceptar] y reconstruya el proyecto ;-)

(el paso 6 genera los archivos .pdb, estos son los símbolos de depuración)

juFo
fuente
40
Asegúrese de que [Información de depuración:] esté configurado en [completo] - ¡lo arregló para mí! Tengo varias configuraciones configuradas en mi proyecto, las nuevas que agregué no tenían este conjunto.
Chiefy
1
¡Esto funcionó para mí! Pero en lugar de [completo] pude hacer solo pdb
Aaron Shaver
42
Resulta que estaba en la versión de lanzamiento. tsk.
PNDA
2
Si tiene un proyecto mixto C ++ / C # con un inicio nativo, asegúrese de que la depuración del proyecto> Tipo de depurador sea mixta.
Bill Hoag
44
También tuve que asegurarme de que noProperties > Build > Optimize code estuviera marcada .
jeffaudio
273

Es algo simple de probar, puede que ya lo hayas probado. Haga clic con el botón derecho en la Solución en el explorador de soluciones, haga clic en "solución limpia", esto elimina todos los archivos compilados y temporales asociados con una solución .

Realice una reconstrucción de la solución e intente depurar nuevamente.

También he tenido problemas con los puntos de interrupción de múltiples proyectos en una solución, algunos compilados como x86, otros como x64.

Patrick
fuente
55
¿Cómo solucionó los puntos de interrupción con múltiples proyectos en una solución, algunos compilados como x86, otros como x64?
Richard Li
3
Si está ejecutando IISExpress (o el emulador de Azure), los archivos en C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Archivos temporales de ASP.NET \ root pueden no actualizarse si su AssemblyVersion es 1.0.0.0. Asegúrese de que haya algo así como 1.0. * Para que se genere una nueva versión cada vez que cree su proyecto web. Clean Solution no borra la carpeta de archivos temporales de Internet.
Michael Lang
1
Esto hace lo mismo que hacer una reconstrucción de todo.
Jonathan Wood el
2
@ Jonathan Wood - Estoy de acuerdo con eso. Pero en circunstancias excepcionales, Reconstruir todo puede producir resultados ligeramente diferentes. Sé que a veces he visto diferencias extrañas. Eche un vistazo aquí para una discusión interesante: stackoverflow.com/questions/1247457/…
Patrick
1
Para mí fue simplemente "Construir" ... "Solución limpia"
Dominic Isaia
238

Deshabilite la opción "Solo mi código" en la configuración de Depuración / General.

sublimerales
fuente
2
Sí, en un proyecto de Windows Phone 8 con una configuración de compilación personalizada, esto es lo que me ayudó.
GONeale
2
Trabajó para mí con Windows Phone 8.1 y VS Community 2015.
Fabiano Araujo
20
Para ser claros: en VS 2017, esta configuración se encuentra específicamente en el cuadro de diálogo Herramientas, Opciones, debajo del panel Depuración, General (no hay un panel "Depurar", para ser exactos). La casilla de verificación se llama "Habilitar solo mi código" y no "Solo mi código".
Jazimov
1
Esto funciona para mí, sin embargo, no puedo ver el valor de la variable cuando se pasa el cursor o se desplaza + f9 obteniendo un error No se puede obtener el valor de local o argumento ya que no está disponible en este puntero de instrucción, posiblemente porque se ha optimizado
Naveen Kumar
1
¡Todavía estoy trabajando en Visual Studio 2019!
Toby Caulk
148

Cruce la publicación de esta solución de Hans K que encontré en el hilo similar >> AQUÍ << :

Haga clic derecho en la solución -> Propiedades

Busque en Propiedades comunes -> Proyecto de inicio

Seleccionar múltiples proyectos de inicio

seleccione Iniciar acción en los proyectos que necesita depurar.

jp2code
fuente
77
Esto también maneja situaciones en las que intenta depurar un proyecto WEB que es un punto final remoto .NET que se ejecuta en el servidor de desarrollo VS y muestra "sin símbolos cargados".
D-Sect
1
Esto me lo arregló. Creo que anteriormente Sombody había intentado adjuntar la depuración al servidor IIS local en lugar de la versión de depuración de IIS que usa Visual Studio.
Dowlers
1
Si ha eliminado el archivo .suo, puede perder la configuración de la solución seleccionada aquí y tendrá que configurarla nuevamente
Canjeado1
Verifiqué esta configuración nuevamente hoy después de la depuración previa con éxito y descubrí que mis proyectos de inicio habían vuelto de alguna manera a un solo proyecto de inicio. Vale la pena revisarlo dos veces.
Anthony De Souza
64

La respuesta seleccionada me llevó a solucionar mi problema. Pero necesito hacer algunas cosas más:

Incluso con "Depurar" seleccionado en el menú desplegable:

ingrese la descripción de la imagen aquí

Y en el proyecto Propiedades> Construir:

ingrese la descripción de la imagen aquí

Visual Studio no estaba cargando símbolos a un proyecto específico. Entonces, en ese menú desplegable, seleccioné "Administrador de configuración" y vi que la configuración de mi proyecto web era incorrecta:

ingrese la descripción de la imagen aquí

ingrese la descripción de la imagen aquí

Luego configuré eso en "Depurar" y comenzó a generar el .pdbarchivo. PERO necesito copiar manualmente el PDB y la DLL y poner en la carpeta que VS estaba buscando (aquí es donde la respuesta seleccionada me ayudó):

ingrese la descripción de la imagen aquí

revs fabriciorissetto
fuente
1
Estaba corriendo en releasemodo. Gracias !!
Dipak Telangre
La clave para mí fue que la casilla 'Desplegar' no estaba marcada, por lo que el pdb no se volvía a implementar después de la construcción
Ben,
43

Debug> Windows> ModulesPara ver qué medidas se están cargados los módulos me puso en la dirección correcta.

En mi caso, IIS Express parecía estar cargando una DLL diferente de los archivos temporales de ASP.NET.

¿La solución?

  1. Navegar hacia C:\Users\<YOUR USER>\AppData\Local\Temp\Temporary ASP.NET Files\vs
  2. ¡Eliminar todo en este directorio!
James S
fuente
Este fue mi problema, la carpeta debe haber estado llena de DLL rotas que se estaban cargando como preferencia.
gburton 01 de
8
Esto funcionó para mí, excepto en mi caso, el directorio que tuve que purgar fue C: \ Windows \ Microsoft.NET \ Framework64 \ v4.0.30319 \ Archivos temporales ASP.NET \ vs \
Andy
Tuve un problema similar en el que ya tenía esta aplicación instalada y estaba cargando esa DLL en lugar de la de mi proyecto sin ningún archivo PDB asociado. Después de desinstalar la aplicación anterior, el problema se resolvió por mí. ¡Gracias!
Lenny K
42

Pude corregir el error simplemente configurando la opción en la opción 'Adjuntar al proceso' para 'Determinar automáticamente el tipo de código para depurar' como se muestra en la captura de pantalla adjunta.

Simplemente siga los pasos a continuación:

  • Vaya a Depurar desde la barra de menú
  • Haga clic en Adjuntar al proceso
  • Cerca de la opción Adjuntar a , haga clic en el botón Seleccionar
  • La Selección de Código Tipo aparecerá la ventana
  • Ahora seleccione la opción Determinar automáticamente el tipo de código para depurar y haga clic en el botón Aceptar.

Corregido error de depuración

theITvideos
fuente
10
¡Para otros que han intentado todo en esta página, solucioné mi problema cambiando a 'Código administrado (v4.5, v4.0)'!
stevekrzysiak
Cambiar a "Gestionado (v4.5, v4.0)" también lo arregló para mí al depurar una aplicación DNN ASP.Net. ¡Gracias!
Mmm
El cambio de "Determinar automáticamente el tipo de código para depurar" a "Administrado (v4.6, v4.5, v4.0)" funcionó para mí. Tengo una solución con 2 bibliotecas de clases, una es accesible para COM, ambas están dirigidas al framework 4.6.1.
Jorb
Tenía una opción incorrecta seleccionada (".NET Core" en lugar de "Managed v4.6"). Elegí "Determinar automáticamente ..." y funcionó! Inicialmente encontré esta solución en esa publicación de blog blog.simontest.net/… .
Evgeni Nabokov,
41

A veces, a pesar de que le da este error, breakpointtodavía recibe el golpe, así que simplemente ignore el error. Esto sucede con bastante frecuencia en el Viewsde un MVC web app.

Serj Sagan
fuente
77
Esto debería ser votado en algún lugar de la parte superior. Pasé mucho tiempo haciendo todas las respuestas anteriores, pero el punto de interrupción en realidad sería alcanzado. Simplemente verifique :) Además, esa era una aplicación de escritorio WPF.
Bartosz
44
aspx parece estar compilado bajo demanda, por lo tanto, la información de depuración está disponible solo después de que se necesita la página aspx
aeroson
También para UnitTesting: debe esperar unos segundos y luego lo golpean.
David Refaeli
Creo que el comentario de @aeroson es lo que me encontré. Una página cargaba puntos de interrupción, otra no. Probé todo tipo de cosas desde las respuestas aquí, y luego actualicé esa página, y los puntos de interrupción se cargaron.
goodeye
gracias ... cavando durante media hora y me di cuenta de que el punto de quiebre aún se ve afectado ...
Kyle Huang
39

Compruebe si falta su archivo .pbd en su carpeta bin / Debug. Si es así, vaya a "Propiedades" de su proyecto, seleccione "Compilar" y luego "Avanzado" en la parte inferior. Elija "completo" en "Información de depuración" en la nueva ventana que apareció. Este fue mi problema y lo resolvió por mí.

Mostrando dónde encontrar la configuración

Arne H. Bitubekk
fuente
Sugeriría a cualquiera que visite esta página para asegurarse de que se está generando el pdb, ya que este fue el problema para mí.
EatATaco
¡Gracias! "pdb-only" (en lugar de completo) fue suficiente. Además, "Avanzado" es un botón en la parte inferior de Build.
Greg Little
¿Dónde deberían generarse los PDB?
ylka
1
Gracias, esto me lo arregló después de que hice nuevas transformaciones Web.config y eliminé las configuraciones predeterminadas (como Web.Debug.config) que proporciona VS 2017.
Ken Palmer
1
Intenté muchas otras opciones (perdí casi 2 horas) Esta opción "completa" solucionó mi problema. ¡Gracias!
SoftSan
29

En mi caso, se verificó "Optimizar código" en las propiedades de mi proyecto. Esto hizo que VS viera mi ensamblado como "no mi código" y, a su vez, no cargó símbolos para él.

La solución fue desmarcar esto. Ubicación de la casilla de verificación Optimizar código

Sandra
fuente
2
Este también fue mi problema, y ​​revisé todas las soluciones anteriores una por una, nada funcionó.
antikbd
Desmarqué esta opción, solución limpia, solución reconstruida, etc. VS siempre estaba considerando el módulo como "Optimizado". La única forma en que encontré forzar a VS a actualizar la información de depuración fue aumentar la versión de ensamblaje del módulo.
alphanoch
La única solución que funciona para mí, un # para ti (# = ++++), pero solo puedo votar una vez
Luis López,
27

Simplemente verifique si su solución está en modo de lanzamiento.

Tino Jose Thannippara
fuente
1
Tardó casi 4 horas en descubrir este problema. gracias
Null Pointer
23

Intente ejecutar Visual Studio como administrador en Windows.

Andy
fuente
1
Terminé necesitado ejecutar msvsmon como administrador en la máquina remota.
Bill Hoag
Esta no es una solución que la gente debería seguir. Si esto soluciona el problema, entonces debería centrarse en por qué necesitaría derechos de administrador para que VS pueda leer el contenido del archivo .pdb de su proyecto.
Jazimov
@Jazimov No estoy de acuerdo. Mientras que me encantaría pasar tiempo investigando esto, en mi caso esto resolvió mi problema y me permitió seguir trabajando como estoy seguro de que también lo hizo para otros. Si desea analizarlo y mejorar esta respuesta, siéntase libre, para eso está.
Andy
Para ser claros: entiendo que solucionó su problema con Visual Studio, eso no es lo que estaba discutiendo. Estoy cuestionando la recomendación de que otros acepten ejecutar el IDE como la solución en lugar de una solución simple . Si ejecutar el IDE como administrador soluciona el problema, entonces esa información debe usarse para solucionar la causa raíz real de modo que el IDE no requiera privilegios de administrador para funcionar correctamente.
Jazimov
21

En mi caso, estoy tratando de depurar en modo relé. Una vez que lo cambio al modo de depuración. Esta funcionando

Adithya Sai
fuente
15

Debe habilitar "Generar información de depuración" en la configuración del compilador

DS.
fuente
1
¿Dónde debería estar eso?
MushyPeas
10
Es lo mismo que la respuesta de juFo - Proyecto> Propiedades> Compilación> Avanzado> Información de depuración> Completo (o solo pdb)
Jeremy Thompson
Escucha a Jeremy Thompsen. Me solucionó el problema.
Thorkil Værge
12

->Opciones de depuración ->General ->Desmarque la marca para " Enable Just My Code"

Esto funcionó para mí.

abdallah mahmoud
fuente
1
Parece que podría ser una configuración predeterminada que vale la pena verificar si se actualiza VS a una versión más nueva (como me había sucedido a mí).
Agamenón
10

Encontramos la causa de nuestro problema. Este código estaba usando el atributo "CodeBehind" en la directiva de página del archivo .aspx en lugar del atributo "CodeFile" (ASP.NET 2.0 y más allá). Después de días de desesperación, una simple búsqueda y reemplazo resolvió el problema.

cjo30080
fuente
10

La opción "Iniciar depuración, depuración + Windows + Módulos" no existe en la edición 2013 de Microsoft Visual Studio Express.

Desmarcar "Usar modo de compatibilidad administrada" en Herramientas Opciones Depuración corrige esto.

Andrus
fuente
10

Revisa tu Solution Configurationlista desplegable. Asegúrese de seleccionar Debug, no Release.

zs2020
fuente
Gracias @ zs2020
Shakeel Hussain Mir
9

Intenté todo lo mencionado anteriormente, pero nada funcionó. [Solución limpia, y busque archivos PDB, etc.]

Incluso publicar la misma solución no resolvió el problema.

Luego volví a lo que suelo hacer para resolver (engañar a este obstinado Visual Studio)

Todo lo que hice fue hacer un cambio deliberado en el código y publicar la solución. Luego revirtí el cambio y volví a publicar.

Voila [archivos PDB deshacerse de los espíritus malignos] .. No es una resolución inteligente, pero esto funcionó ..: - |

Mahesh
fuente
7

Solo aplicaciones web (IIS Express):

  • Haga clic con el botón derecho en IIS Express Tray y cierre IIS.
  • Solución limpia

Bandeja IIS

Christian Gollhardt
fuente
Intenté muchas de las otras sugerencias en otras respuestas, muchas de las cuales me han ayudado en el pasado, pero hoy esta me ayudó. En mi caso, tengo varias sucursales y creo que IIS Express estaba de alguna manera atascado en una rama diferente y no se estaba actualizando con la rama que estaba tratando de depurar, a pesar de mis numerosos intentos de limpiar y reconstruir.
Chris H
6

Ninguna de esas respuestas resolvió mi problema. Intenté otra cosa basada en el hecho de que el proyecto con la parada no era en realidad el proyecto cargado. Descubrí que Hans Passant escribió que el archivo .dll donde quiero detener el depurador y los archivos .pdb asociados se copiaron cerca del archivo .exe. Esos archivos han tenido una fecha anterior, así que pensé que no se actualizaron en el tiempo de ejecución. Los eliminé manualmente, Visual Studio creó otro par Y puse este nuevo par cerca del .exe. ¡Ahora los breakpoins funcionan!

Quizás Visual Studio no pueda copiar y REEMPLAZAR los archivos existentes (.dll y .pdb) cerca del .exe ya que hay otros allí. Entonces, si eliminé manualmente, VS podría crear uno nuevo cerca de .exe.

Creo que otros cambios (comprobaciones, etc., de las otras respuestas) desencadenaron algo y Visual Studio copió y reemplazó el dll y el pdb de la carpeta del proyecto a la carpeta cerca del exe, por lo que fue una solución.

Creo que la causa raíz del problema es que Visual Studio usa otro archivo en tiempo de ejecución, no el archivo del proyecto, con la parada.

Tal vez esta respuesta para ayudar a alguien!

Tratak
fuente
6

Cosas para verificar solo para que quede claro: asegúrese de tener la configuración establecida en 'Depurar' y no 'Liberar'. Puede depurar el proyecto de inicio en modo 'Versión', pero no en una biblioteca de clases referenciada.

Sai Chakradhar Sana
fuente
6

Propiedades del proyecto (luego seleccione su configuración de compilación)> pestaña Construir> Avanzado ...> Información de depuración (desplegable)

Establecer en 'todos' o 'solo pdb' y luego reconstruir

Sinestésico
fuente
hice pdb_only, también limpié y reinicié el navegador
Jason
6

En lugar de hacer todas estas cosas solo

Cerrar y reabrir

la solución solucionará el problema

kselva
fuente
Me funcionó en Microsoft Visual Studio 2013 en: Archivo> Cerrar solución Luego Archivo> Abrir solución (debe precargarse con la misma carpeta en la que estaba). Los puntos de interrupción pasaron de bandera amarilla a roja circular al instante. Así que gracias.
Zargold
OMG genio! ¡¡¡Gracias!!!
AresDev
6

Tuve un problema similar e hice lo siguiente: Depuración => Opciones => General => Eliminar la marca de verificación para "Habilitar solo mi código" Esto funcionó para mí ...

Muhamed Krasniqi
fuente
esto también funciona para mí
mohammed elshoraky
6

Esto me llevó un tiempo probar otras opciones anteriores y, por alguna extraña razón, la depuración dejó de funcionar.

Herramienta -> Opciones -> Depuración -> General -> (desmarcar) "Requerir que los archivos de origen coincidan exactamente con la versión original"

tfa
fuente
6
  1. Solución limpia y reconstrucción
  2. Verifique que la configuración esté establecida en Depurar
  3. Asegúrese de que el archivo PDB esté en la carpeta Debug.
  4. Desde el menú Depurar, haga clic en Habilitar todos los puntos de interrupción
Bimal
fuente
6

Verifique que las siguientes dos configuraciones sean las mismas en Visual Studio:

Haga clic con el botón derecho en el proyecto de prueba, vaya a Propiedades, pestaña Construir y mire el objetivo de la Plataforma

Los míos están configurados en "Cualquier CPU", por lo que x64

ingrese la descripción de la imagen aquí

En la barra del menú principal, vaya a Prueba, Configuración de prueba, Arquitectura de procesador predeterminada

La mía se estableció en X86

ingrese la descripción de la imagen aquí

Al cambiar esto a X64 para que coincida con la configuración anterior, el menú integrado de Visual Studio "Debug Test (s)" funciona y alcanza los puntos de interrupción que anteriormente se ignoraban con el mensaje "El punto de interrupción no se alcanzará actualmente. No se han cargado símbolos para este documento ".

Actualizar:

Para Visual Studio 2019, los menús se han movido un poco: ingrese la descripción de la imagen aquí

Mike
fuente
5

Sé que llegué años tarde, pero pensé que había hecho algo mal y seguí los pasos anteriores, luego me di cuenta de que había configurado la configuración de la solución en 'Liberar' por error :)

Neil Walker
fuente
1
¿Puedo votar 10 mil veces? Lo peor de todo es que creo que he buscado esto en Google como 10 veces, y cada vez es el mismo error estúpido. ¿Quizás Microsoft podría insinuarlo al usuario?
tfrascaroli