Pregunta

Estoy trabajando en VS 2008 y tengo tres proyectos en una solución.Estoy depurando adjuntándolo a un proceso .net invocado por una aplicación de terceros (SalesLogix, una aplicación CRM).

Una vez que se ha adjuntado al proceso e intento establecer un punto de interrupción en uno de los proyectos, no establece un punto de interrupción en ese archivo.De hecho, cambia la pestaña actual a otro archivo en otro proyecto y establece un punto de interrupción en ese documento.Si el archivo no está abierto, llega incluso a abrirlo por mí.No puedo explicar esto.No tengo ni idea.¿Alguien ha visto un comportamiento tan extraño?No lo creería si no lo estuviera viendo yo mismo.

Un poco más de información:si establezco un punto de interrupción antes de adjuntarlo, muestra el "punto rojo" y dice que no hay símbolos cargados... no hay problema... eso espero.Cuando adjunto e invoco mi código .net desde SalesLogix y vuelvo a VS, mi punto de interrupción desaparece por completo (ni siquiera una advertencia de que la fuente no coincide con el archivo de depuración).Cuando intento cargar manualmente el archivo de depuración, aparece un mensaje que indica que el archivo de símbolos no coincide con el módulo.El .pdb y el .dll tienen la misma marca de tiempo, así que estoy perplejo.

¿Alguien tiene alguna idea?

Gracias,

jeff

¿Fue útil?

Solución

Vi esta funcionalidad en versiones anteriores de VS.Net (creo que en 2003).Es posible que todavía exista en las versiones actuales, pero no lo he encontrado.Parece que los archivos con el mismo nombre, incluso en directorios diferentes, confunden VS.Net y termina estableciendo un punto de interrupción en un archivo con el mismo nombre.Solo puede suceder si las clases del archivo también tienen el mismo nombre.Supongo que hasta aquí los espacios de nombres.

También es posible que desee verificar su configuración de compilación para asegurarse de que todos los proyectos se estén compilando en modo de depuración.Sé que me pillaron un par de veces cuando la configuración se cambió de alguna manera para la solución y algunos proyectos no se compilaban en modo de depuración.

Otros consejos

¡Kibbee, tenías razón!Eran dos archivos con el mismo nombre en carpetas diferentes.Estaba configurando el punto de interrupción en el archivo correcto en la línea 58; estaba colocando el punto de interrupción en el otro archivo en la línea 58.Finalmente pude establecer un punto de interrupción usando la opción de menú "Depurar-->Nuevo punto de interrupción-->Interrumpir en el nombre de la función" e ingresando el nombre de mi función.Se detuvo exactamente como debería haberlo hecho entonces.

Estoy de acuerdo, hasta aquí los espacios de nombres, ¿verdad?Joder, me costó un par de horas.Oh, bueno... al menos está resuelto y sé por qué.

¡Gracias por la respuesta y gracias a Matt por su respuesta también!

Licenciado bajo: CC-BY-SA con atribución
No afiliado a StackOverflow
scroll top