2011-05-14 22 views
14

He estado tratando de usar Eclipse CDT para hacer algunos ejemplos de C++, puedo ejecutarlos muy bien con el comando de ejecución, pero siempre Intento depurar, la ventana de la consola se congela, puedo ingresar, pero el programa no continúa.no se puede depurar el programa pequeño en eclipse helios cdt usando mingw/gdb en Windows, la consola se congela

Cuando elimino errores, me sale el siguiente resultado en la ventana de la consola (no hay puntos de ruptura, pero se rompe en principal debido a la configuración por defecto):

Hello, world 
put your name: 15^running 

El botón Continuar se desactiva y no hace nada cuando Ingresé algo y presiono ingrese. El 15 es un número al azar, a veces es 16, 20, etc.

Si corro el programa bajo el eclipse me sale el símbolo de entrada muy bien:

Hello, world 
put your name: test 
Hello test 

este es el código que trato de depuración:

#include <iostream> 
#include <string> 

int main() { 
    std::cout << "Hello, world" << std::endl; 
    std::string name; 
    std::cout << "put your name: "; 
    std::cin >> name; 
    std::cout << "Hello " + name << std::endl; 
    return 0; 
} 

Mi ruta var:
C:\WINDOWS\system32;C:\WINDOWS;C:\WINDOWS\system32\WBEM;C:\Program Files\Java\jdk1.6.0_14\bin;C:\MinGW\bin

versión de Eclipse Helios Service Release 2
CDT versión: 7.0.2
SO: Windows XP
BGF versión: GDB de GNU (GDB) 7,2

¿Cómo puedo depurar este pequeño ejemplo bajo CDT, sin problemas?

Respuesta

0

Lo siguiente es de FAQ de la página web de Eclipse:

http://wiki.eclipse.org/CDT/User/FAQ#Eclipse_console_does_not_show_output_on_Windows

Eclipse consola no muestra la salida en Windows En Eclipse CDT el de Windows, la salida estándar del programa que se está ejecutando o depurado es totalmente en búfer, porque no está conectado a una consola Windwos, sino a una tubería . Vea el error 173732 para más detalles. O bien agregar llamadas fflush después cada printf o añadir las siguientes líneas en el inicio de la función principal :

setvbuf(stdout, NULL, _IONBF, 0); 
setvbuf(stderr, NULL, _IONBF, 0); 

parece un error esperado en las ventanas.

12

15^running mirado como resultado del gdb's Machine Interface. Normalmente no debería aparecer en la consola de Eclipse.

Recomiendo probar otro Create Process Launcher. Se puede cambiar de la siguiente manera:

  1. En el menú principal, seleccione "Ejecutar" -> "Configuraciones de depuración ...".

  2. En la ventana abierta de "Configuraciones de depuración" que se muestra a continuación, haga clic en "Seleccionar otra ..." al lado de "Usar GDB (DSF) Crear iniciador de procesos".

    enter image description here

  3. En la ventana abierta "Seleccionar preferidos Launcher" muestra a continuación verificación "Usar la configuración específica de configuración", seleccione "Standard Crear Proceso Launcher" en la lista a continuación y haga clic en OK.

    enter image description here

  4. Ahora ve a la pestaña Depurador en la ventana "Configuraciones de depuración", seleccione depurador, por ejemplo, "MinGW gdb" y haga clic en Aplicar.

    enter image description here

con el proceso estándar Crear lanzador que soy capaz de depurar el programa a pesar de "poner su nombre:" se imprime sólo después escribo algo y pulsa enter, debido a que el flujo de salida no se vacía .

+1

Gracias por esto, este fue el problema que estaba teniendo también en Linux al intentar depurar mozilla usando gdb + eclipse. – jwir3

Cuestiones relacionadas