standard software plugin oxygen for cdt c++ eclipse gdb eclipse-cdt

c++ - software - eclipse standard



Depuración con Eclipse CDT y GDB (2)

Tuve el mismo problema al intentar establecer puntos de interrupción en los complementos de Qt (que están basados ​​en las DLL de Windows).

Encontré esta discusión y la solución funcionó perfectamente para mí, aunque estoy usando una versión más nueva de Eclipse que tú, parece ser el mismo problema.

http://www.eclipse.org/forums/index.php?t=msg&goto=555294&S=2aed4155e654e34cb2e84a6fb23de9bf#msg_555294

Básicamente, es utilizar un protocolo gdb anterior que admite puntos de interrupción diferidos. Usando el "Lanzador de procesos de creación estándar" en lugar de "GDB (DSF) Crear iniciador de procesos" desde Configuraciones de depuración y obtengo todos mis puntos de interrupción de DLL establecidos ahora.

Versión: Helios Release Build id: 20100617-1415

CDT y GDB versión 7.0.0.

¡Buena suerte!

Tengo un proyecto de aplicación Eclipse CDT C ++ que usa una biblioteca compartida. Esta biblioteca está compilada con información de depuración y su fuente está disponible en la ruta correcta.

Ahora trato de depurar mi aplicación con Eclipse y GDB. Si pongo puntos de interrupción en el código fuente de mi aplicación, todo está bien. Luego abro un archivo fuente de la biblioteca compartida incluida y coloco el punto de interrupción allí. Al iniciar la sesión de depuración, se me advierte que "No hay ningún archivo fuente denominado xxx.cpp en los símbolos cargados" y la ejecución no se detiene en ese punto. Si pongo el mismo punto de interrupción en el mismo archivo cuando la sesión de depuración ya se está ejecutando, todo funciona bien. ¿Qué está mal?

Gracias por tu ayuda.


Encontré un tema que puede responder a esta pregunta: ¿Por qué Eclipse CDT ignora los puntos de interrupción?

Podría ser que esté intentando establecer puntos de interrupción en una biblioteca compartida que aún no se ha cargado. Eso no funcionará hasta que la biblioteca se haya cargado. Los gdb más nuevos permiten establecer puntos de interrupción diferidos, pero es posible que (CDT) aún no cuente con el soporte. Una solución consiste en establecer un punto de interrupción en un lugar que está disponible desde el principio y que se alcanzará cuando la biblioteca compartida en cuestión ya esté cargada. Luego configure el otro punto de interrupción en la biblioteca compartida. Ahora debería funcionar. Es un poco más tedioso, pero generalmente funciona.

¿Podría ser la answear? Estoy usando CDT v6.0.0.200906161748 y GDB v6.8