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.