Pregunta

Me mudé de Windows a Ubuntu Linux, y ahora quiero configurar el entorno de desarrollo aquí. El problema es que necesito

  1. IDE C / C ++ comparable a Visual Studio
  2. Forma de generar archivos binarios de Windows PE
  3. Cómo depurar los binarios de Windows PE

La primera vez que probé Code :: Blocks. Aquí Encuentro una guía para configurarlo para el desarrollo cruzado, así que manejé para obtener " Hola Mundo " Compilado y corriendo bajo el vino. Por otra parte, la depuración también funcionó.

Pero luego descubrí que el complemento Eclipse + CDT es un IDE mucho más avanzado. Pasé un tiempo y finalmente compilé y vinculé el proyecto.

Ahora estoy intentando que la versión de GDB Insight de MinGW funcione dentro de Eclipse CDT. La forma simple de usar el depurador descrita en la guía de Code :: Blocks ya no funcionará. Sigo recibiendo " Error al crear la sesión " mensajes.

Entonces, mi pregunta es, ¿cómo puedo usar MinGW GDB bajo Wine como back-end de depurador en Eclipse? O, ¿cuál es el mejor IDE para Linux-> desarrollo cruzado de Windows?

¿Fue útil?

Solución

Me pregunto si nadie ha respondido esto todavía.

  1. QtCreator. No se confunda por su nombre, QtCreator funciona muy bien con cualquier tipo de código C ++, no necesita codificar en Qt para usarlo. Es como FOSS Visual Studio: incluso tiene una comprobación de sintaxis " on fly " ;.

  2. MinGW. No hay mucho que decir, simplemente crea los ejecutables de Win PE y funciona. Está disponible en repositorios. Tenga en cuenta que las aplicaciones Win GUI tienen un bit especial en su conjunto de encabezados PE; por lo tanto, para crear una aplicación GUI con MinGW, debe pasar una opción -mwindows para establecer este bit.

  3. Esto es un problema. Realmente: solo estoy tratando de depurar una aplicación de Windows y no encontré todavía una manera de hacerlo. En breve recordaré aquí lo que intenté hasta ahora, solo para que no pises mis rastrillos:

    • winedbg . Probablemente debería funcionar, pero para mí no lo hizo. Cuando establezco un punto de interrupción, es decir, como este br 43 , dice No se pueden agregar puntos de interrupción (dirección desconocida 7b860807) .

    • winedbg . Sí, una vez más, pero esta vez lo usaremos como este winedbg --gbd para convertirlo en un comando a gdb . Probablemente esta es la única forma de depurar una aplicación, pero tiene algunos inconvenientes: primero, para reiniciar una aplicación, debe salir del depurador; si ingresas run , indica que el objetivo remoto no lo admite. En segundo lugar, ni siquiera tengo idea de cómo depurar una aplicación multiproceso; cuando comencé por primera vez, me topé con un error Se solicitó el modo de no parar, pero el control remoto no es compatible con , y después de establecer un punto de interrupción y comenzar, dice: No se puede insertar el punto de interrupción 1. y No se puede acceder a la memoria en la dirección 0x401654 . Por lo tanto, para que esto funcionara, tuve que cambiar el nombre de mi archivo .gdbinit (es decir, el modo de no parar se establece allí) .

    • gdb.exe . Estaba seguro de que encontré una forma: el uso simple de una versión de Windows de gdb debería resolver los problemas; más, para mí, ya que soy un chico de Emacs, sería absolutamente lo mismo que depurar con gdb nativo. Pero, por desgracia, las ventanas gdb simplemente no funcionaron. Si lo ejecuto y escribo cualquier comando, simplemente no hace nada. Solo reacciona con los comandos Ctrl-c y Ctrl-z . Probablemente voy a probar mi tiempo libre para hacer una pregunta al respecto en la lista de correo. Bueno, ahora no podemos usarlo ...

Entonces, ¿qué tenemos que ver con la depuración? Probablemente busque otro depurador de Windows que funcione en WINE . Si recuerdo correctamente, OllyDbg funcionó, pero no sé en este momento cómo hacer que muestre un código fuente.

Otros consejos

puede probar NetBeans . Es un buen código abierto y gratuito. y soporte multiplataforma IDE.

¿Ejecutar Windows en una máquina virtual?

En serio, tu pregunta es buena, pero probablemente no vale la pena perder el tiempo para descubrir la respuesta (especialmente: ya que nadie parece tener una respuesta lista). Si tiene trabajo real que hacer, Windows o Windows nativo en una VM es la respuesta.

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