2010-10-29 13 views
8

Tengo problemas para depurar cualquier sitio web ASP Classic en mi estación de trabajo utilizando cualquiera de los entornos de depuración de MS disponibles para mí. Estoy en Win XP SP3, usando el IIS 5.1 incorporado.Depurador en línea incorrecta al depurar Classic Asp

Comenzó hace algunas semanas, y ocurre en múltiples proyectos. Algo cambió claramente en mi entorno, porque funcionaba bien en el pasado, incluso en IDEs recientes, siempre y cuando adjunte para procesar. Luego se rompió como se describe a continuación. Había renunciado, pero comencé a trabajar en un nuevo proyecto recientemente, intenté depurar y ¡funcionó! Hoy, sin embargo, vuelve al mismo comportamiento roto:

Cuando intento establecer un punto de interrupción, el IDE realmente establece el punto unas líneas arriba o abajo de la línea en la que hice clic. Intento establecer el punto de interrupción en líneas que son completamente del lado del servidor, así que no es porque se saltean antes o después del HTML con nuggets de código incrustado. Ocasionalmente no establecerá el punto de interrupción, dándome un ícono de punto de interrupción hueco y presentando un error que dice que no hay código ejecutable en la línea.

Cuando me conecto al proceso IIS (inetinfo.dll, ya que estoy ejecutando en modo de aislamiento bajo), es posible que no se active el punto de interrupción. Si es así, y comienzo con un solo paso, la línea seleccionada salta, y no aterriza en cada línea continua en la fuente, ni sigue las estructuras de control como se esperaba. Las variables observadas no se actualizan como se esperaba. Está viendo claramente un código diferente del que tengo para los mismos números de línea.

El mismo comportamiento ocurre si me carga la página en un navegador y

  • asociar al proceso de VS2010, establecer un punto de interrupción y actualiza la página, o
  • establecer el punto de interrupción, asociar al proceso y actualizar, o
  • agregar una declaración "detener" en mi fuente y actualizar la página. En ese caso, me presentan una lista de los depuradores disponibles, y cada uno de ellos hace exactamente lo mismo: omiten las MISMAS líneas de código y siguen las MISMAS rutas "incorrectas". Intenté con VS2010, 2008, 2005, 2003 y Microsoft Script Debugger.

Parece que el código fuente no está sincronizado con lo que está pasando el depurador. Me he asegurado de que 'Requiere que los archivos fuente coincidan exactamente con la versión original' se establece en VS> Herramientas> Opciones> Depuración> General

Y, por supuesto, estos son sitios ASP Classic - no hay código compilado, entonces la fuente que veo en el IDE debe ser la misma que la que ejecuta el depurador. No es específico para un proyecto; está sucediendo en al menos dos proyectos completamente separados en este momento. Y está sucediendo en varias máquinas: implementé mi proyecto en un servidor de prueba e intenté depurar allí, y obtuve el mismo comportamiento.

me encontré con algo de información sobre los problemas de sonido similar relacionados con archivos UTF-codificado que contienen caracteres no ANSI (ya saben, los que utiliza Unicode para apoyar!) here, here y here, pero fue a través de mi origen y no puede encontrar ningún archivo como ese.

¿Alguna idea? ¡Gracias!

Respuesta

8

Las únicas veces que he visto esto son cuando un proyecto se ha configurado para compilar en modo de lanzamiento en lugar de en modo de depuración.

Lo fácil que es comprobar esto dependerá de su configuración de IDE, puede que ya esté allí en su barra de herramientas, pero si no lo está.

  1. Haga clic derecho sobre la solución Gestor
  2. Seleccione Configuración ...
  3. Asegúrese de que se selecciona de depuración en la "Configuración de soluciones activas" desplegable
+0

No, ya comprobado - Sólo tengo una configuración de depuración en el proyecto Actualmente estoy trabajando. Y, de nuevo, no hay un paso de 'compilación' para invocar la configuración: solo guarda el archivo .ASP y actualiza el navegador. Gracias, ¡gracias! – Val

+0

¿Este problema ocurre en la máquina de otra persona? Si es así, verifique la configuración de compilación para el proyecto para asegurarse de que está produciendo la información de depuración correcta. Supongo que has intentado reconstruir? Si nada de esto funciona, probablemente solo tire las manos al aire, grite y luego vuelva a instalar VS. – knightpfhor

+0

No hay nada que construir, pero lo hice una reconstrucción de todos modos, a ningún efecto. Veré si puedo reproducirme en otra máquina, aunque ... ¡buena idea! No creo que es sólo VS - sucede en todas las versiones de VS, además de la MS depurador de guiones, por lo que se invoca algún componente común ... – Val

2

que tenía el mismo problema en VS2008 . La conversión del archivo asp a codificación ANSI (con Notepad ++) lo resolvió.

2

definitivamente hay un problema con la codificación. El archivo estaba en ANSI, y convertí a otro formato, y cambié a ANSI y resolví el problema. Tenga cuidado porque puede perder caracteres especiales que cambian la codificación.

+0

me gustaría añadir que también es necesario comprobar la codificación de todos los archivos incluidos por el script mediante la instrucción ''. –

0

Esto todavía ocurre en VS2010.

Lo que he encontrado para evitarlo, es seleccionar Release vs Debug. Reconstruir proyecto Vuelva a cambiar a Debug y boom.

Todos están sincronizados de nuevo.

3

En mi caso, era lineends incorrectos en el archivo de código fuente. VS espera \ x0D \ x0A pero solo tuve \ x0D. Hay una configuración en Opciones -> Medio Ambiente -> Documento -> algo con final de línea (no utilizo vs en Inglés por lo que sólo puede adivinar). La comprobación de esta opción resolvió el problema 4 yo.

2

Tuve un extra ; en mi archivo antes de un comentario. No tengo idea de cómo esto causa el problema, pero eliminarlo parecía arreglar las cosas.

+1

RESPUESTA MÁS NO ABIERTA DEL AÑO + +. Tenía un archivo .c 80.000+ de línea y al colocar puntos de interrupción del programa se rompería miles de líneas fuera. Pasaría por la lógica correcta pero nunca mostraría la ubicación correcta. Encontrando estas pepitas ; // poniéndose de pie por su cuenta y quitándolas lo resolvió. – Sean

Cuestiones relacionadas