2010-01-23 21 views
8

La aplicación que estoy trabajando no se inicia en el depurador de Visual Studio 2005.aplicación no se inicia en el depurador

Esto es lo que hago:

  • que reconstruir la aplicación y pulsa F5 para iniciar que
  • el título de la ventana de VS2005-dice "projectname (Running) ..."
  • los botones del depurador aparecen pero están en gris
  • la aplicación aparece en el administrador de tareas de Windows, pero yo t tiene solo 80k en uso de memoria
  • No pasa nada por un largo tiempo, y finalmente aparece una ventana con el siguiente mensaje de error: "La depuración se está deteniendo pero aún no se ha completado. Puede forzar la depuración para que se detenga inmediatamente, pero cualquier proceso que se desconecte puede terminar en su lugar. Esta ventana se cerrará automáticamente cuando la depuración se haya detenido por completo ". La ventana no desaparece, así que después de un tiempo presiono el botón" Parar ahora "
  • No sucede nada por un tiempo (los botones del depurador aún están visibles, pero gris)
  • Algún tiempo después aparece una nueva ventana: "No se puede iniciar el programa '(ruta a exe)'. OLE har skickat en begäran och väntar på svar ". La última frase es en sueco porque" OLE ha enviado una solicitud y está esperando respuesta ". Presioné OK y los botones del depurador desaparecieron.
  • La aplicación aún se está ejecutando, y todavía tiene solamente 80k en el uso de memoria.
  • trato de terminar el proceso con el administrador de tareas, pero no se mata.
  • que salga de Visual Studio y, finalmente, el proceso se ha ido.

el aplicación es un proyecto de C++ no administrado, que usa muchos archivos DLL como complementos. Estoy usando el tiempo de ejecución de "depuración multi-hilo", y me he asegurado de que todos dependan las entradas se compilan contra el mismo tiempo de ejecución.

Fue mientras lo hacía que este problema apareció de repente. Intenté revertir mis cambios, pero no ayuda. Reiniciar la computadora tampoco ayuda.

Tengo la aplicación ejecutándose una o dos veces al azar. Si luego finalicé la aplicación y comencé de nuevo, no se inició. Así que no creo que esto se deba a mi configuración.

¿Alguna idea?

Una nota más: la aplicación se inicia y se ejecuta como debería si la inicio desde fuera de Visual Studio.

Respuesta

1

Ok, he resuelto mi problema, pero no tengo idea de cómo.

Una cosa que probé fue eliminar todos los archivos de compilación y los archivos exe y dll, y luego volver a compilar todo. Pero eso no ayudó.

Intenté una cosa al azar: los complementos estaban en la misma solución. Así que los quité e intenté correr nuevamente.¡Y esta vez funcionó! Así que volví a agregar todos los plugin-projects, ¡y aún funciona!

Así que, supongo que nunca sabré lo que pasó. Pero eliminar y agregar un proyecto a una solución también podría resolver el problema de otra persona ... :)

+0

Después de algunas vueltas tuve el problema de nuevo. ¡Pero solo eliminar cualquier proyecto de forma aleatoria de la solución hace que funcione nuevamente! – Jonatan

+0

Aún más información: antes de que apareciera este problema, tuve problemas con algunos DLL-plugins asignando memoria con malloc(), que se liberó de otra DLL con free(). Esto produjo un error de afirmación, aunque todos usan el mismo tiempo de ejecución. Estoy trabajando en este error al proporcionar una devolución de llamada a una función que llama a malloc(). Aún no he corregido todos los complementos, y parece que este problema aparece tan pronto como llego a ese error. Y luego es imposible iniciar el programa, incluso después de reiniciar VS2005, hasta que elimine un proyecto ... – Jonatan

+0

Solución final: destruí mi directorio de soluciones y realicé una comprobación limpia. El problema se fue, permanentemente. Probablemente algún archivo compilado que estaba dañado, y que no se eliminó con el comando "limpiar solución". Tengo el directorio anterior intacto, en caso de que quiera investigar más. – Jonatan

2

Suena como una DllMain() en una de las DLL implícitamente vinculadas utilizadas por su programa. Es posible que obtenga una sugerencia de la ventana de resultados, que enumera los nombres de las DLL a medida que se cargan. Si es wininet.dll, entonces ha caído en una trampa de punto muerto con el servidor de símbolos.

+0

Interesante, pero ahora he intentado eliminar todos los complementos (todos los DLL) y la ventana de resultados está vacía. – Jonatan

Cuestiones relacionadas