varnimyr titles the power pierce net heaven elwiki elsword elrianode elianod eclipse gdb cygwin

titles - ¿Cómo lograr que Eclipse le otorgue a Cyberwin GDB una ruta de acceso posix al ejecutable?



pierce the heaven elsword (3)

Estoy usando Eclipse en Windows para programar C ++ usando la cadena de herramientas de Cygwin. Me gustaría utilizarlo para la depuración también, pero mi problema es el siguiente:

  • El ejecutable para depurar está en una subcarpeta del espacio de trabajo (bastante estándar, supongo) pero no del proyecto real desde el que se construye el ejecutable.
  • Eclipse y GDB tienen diferentes formatos de ruta: Eclipse funciona con rutas de Windows, mientras que GDB funciona con rutas de acceso posix. Eclipse conoce D:/Path/To/Exe mientras que GDB necesita /cygdrive/d/Path/To/Exe .
  • Eclipse insiste en que puede encontrar el ejecutable para depurar cuando ingreso a la ruta en el cuadro de diálogo "Configuraciones de depuración ...". El botón "Depurar" está deshabilitado hasta que la ruta sea correcta.
  • Eclipse no parece tener ${workspace_loc} en ese cuadro de entrada particular.

¿Hay alguna opción oculta que no sepa? ¿Has tenido el problema antes?

Lo que he intentado hasta ahora

  • Obligar a Eclipse a pasar el camino que ingresé a GDB --- no funcionó.
  • Jugar con las rutas de búsqueda de origen y las asignaciones de rutas --- no funcionó , es solo solo para los archivos fuente.
  • Crear un proyecto de C ++ para la carpeta de salida donde está el ejecutable, así podría tener una ruta relativa al exe dentro del proyecto --- no funcionó.

Cosas que aún podría intentar

  • Utilice el archivo .gdbinit para descartar la ruta dada por Eclipse y cargue el ejecutable real con las rutas posix --- lo intenté, pero no fue muy difícil.
  • Especifique un contenedor como argumento para GDB --- contamina la raíz de mi espacio de trabajo.
  • Proporcionar mi propio complemento para tratar el caso --- agrega otro pedazo de código para mantener en otro idioma.

Cygwin viene con un programa llamado cygpath para traducir las rutas de Windows a Unix y viceversa, por ejemplo

$ cygpath -u ''c:/Users/Andrew/Documents/svn'' /cygdrive/c/Users/Andrew/Documents/svn

hacer un cygpath --help para obtener más información.

Por lo tanto, probablemente desee escribir un contenedor para GDB que traduzca las rutas específicas de Windows a las rutas de Unix, y luego invoque el GDB real.


En Eclipse en Preferencias-> C / C ++ -> Depurar -> "Ruta de búsqueda de fuente común", agregue una nueva asignación de ruta. Como ruta de compilación, debe utilizar Unix como path (por ejemplo, / cygdrive / c), como ruta del sistema local, debe usar Windows como path (por ejemplo, c :).


El problema desapareció al actualizar a Eclipse Ganimedes.