2010-06-08 18 views
19

El creador de Qt puede construir y ejecutar mis proyectos perfectamente, pero se saltará directamente sobre cualquier punto de interrupción que establezca. No puedo encontrar ninguna opción para arreglar esto, y agradecería algo de ayuda.¿Por qué mis puntos de interrupción no funcionarán en Qt Creator?

EDITAR: El SDK está integrado en modo de depuración, y la configuración de compilación del proyecto está configurada para depurar.

+1

Mire en la ventana de la consola de gdb, tal vez gdb se queja de algo al cargar su aplicación. – Eugene

+0

No recibí mensajes inesperados al compilar desde el símbolo del sistema. – CoutPotato

+0

No, cuando está en el creador, cuando inicia la aplicación bajo el depurador, debe cambiar al panel de depuración. Allí puede mostrar la consola de gdb (está oculta de forma predeterminada, creo, consulte los menús). gdb imprime muchas cosas allí (archivos dlls cargados, etc.) – Eugene

Respuesta

7

Qt Creator tiene dos modos de ejecutar su aplicación: "ejecutar" y "depurar". Creo que puede estar confundido en cuanto a lo que quieren decir:

  • Ejecutar: inicie el programa, exactamente lo mismo que hacer doble clic en el ejecutable.
  • Depuración: inicie el depurador, conéctelo al ejecutable y ejecute el ejecutable a través del depurador. Esto registra todos los pasos (llamadas de función, etc.) que tiene su programa, incluidos los puntos de interrupción.

En resumen: cuando necesite determinar un valor interno durante la ejecución del programa y/o haya establecido puntos de corte, use Depurar. Para cualquier otra cosa, simplemente ejecútalo, que es mucho más rápido.

+2

en QtCreator 2.3.0, para cambiar de "liberar" (no detiene el depurador en los puntos de interrupción) a "depurar", debe hacer clic en el ícono del proyecto -> luego hacer clic en el desplegable de compilación -> luego debería ver "liberar" y "liberar" depurar "-> haga clic en" depurar ". El ícono del proyecto se encuentra en la esquina inferior izquierda, arriba de los íconos de la GUI del proyecto de construcción, depuración y gran escala. –

+1

Si no cambia su proyecto a "depurar", el depurador omitirá siempre sus puntos de interrupción. También asegúrese de limpiar después de cambiar a "depurar". –

+2

Si bien lo anterior es muy cierto, no responde la pregunta inmediata: suponiendo que la ejecución se realizó correctamente en modo de depuración y con sesión de depuración, todavía hay casos en que GDB (pero más a menudo CDB) no se detiene en puntos de ruptura. Por lo general, esto ocurre después de intentar sincronizar el depurador al proceso sin éxito. Desafortunadamente, todavía no puedo entender por qué sucede esto y solo en algunas ocasiones. – Adi

3

Espero que esto ayude a alguien que tenga el mismo problema. Incluso me la pusieron modo de depuración, pero los archivos de salida fue puesto en carpeta de destino, cuando miré a mi archivo .pro, me encontré con esta línea

CONFIG += qt warn_on release rtti exceptions 

Entonces quito "liberación", entonces funcionó. Espero que esto ayude.

4

es necesario agregar en el archivo .pro siguiente línea:

CONFIG  += debug 

y puede ser que necesite eliminar este:

CONFIG  += release 
19

Si se trata de una acumulación cmake, es necesario establecer el construcción de tipo antes de establecer el proyecto, por lo que por ejemplo en su parte superior CMakeList.txt:

SET(CMAKE_BUILD_TYPE Debug) 
project(mybuildtype) 

Oficialmente, puede pasar esto también a cmake en la sección Proyectos al ejecutar cmake: http://qt-project.org/forums/viewthread/12694, entonces con -DCMAKE_BUILD_TYPE = Indicador de depuración, pero esto ya no parece funcionar ... Si desea que una bandera funcione, necesita pruébelo antes de configurar el proyecto, vea http://www.cmake.org/pipermail/cmake/2008-September/023808.html

Cuestiones relacionadas