c++ - visual - mingw




¿Hay una GUI gdb de C++ para Linux? (19)

¿Alguna vez has echado un vistazo al depurador DS-5 ?

Hay una versión de pago que incluye muchas características útiles, pero también puede usar la Edición comunitaria de forma gratuita (que también es muy útil, especialmente para sistemas integrados).

Tengo una experiencia positiva con esta herramienta al depurar aplicaciones de Android en un dispositivo real utilizando eclipse.

Brevemente: ¿Alguien sabe de una GUI para gdb que la lleve a la par o cerca del conjunto de características que obtiene en la versión más reciente de Visual C ++?

En detalle: como alguien que ha pasado mucho tiempo programando en Windows, uno de los escollos más grandes que he encontrado cada vez que tengo que codificar C ++ en Linux es que depurar cualquier cosa usando la línea de comandos gdb me lleva varias veces más tiempo que en Visual Studio, y no parece estar mejorando con la práctica. Algunas cosas son más fáciles o más rápidas de expresar gráficamente.

Específicamente, estoy buscando una GUI que:

  • Maneja todos los conceptos básicos como pasar por encima y dentro del código, observar variables y puntos de interrupción
  • Entiende y puede mostrar el contenido de los tipos de datos complejos y anidados de C ++.
  • No se confunde y, de preferencia, puede avanzar de manera inteligente a través de estructuras de datos y códigos con plantilla al tiempo que muestra información relevante, como los tipos de parámetros
  • Puede manejar aplicaciones con hilos y cambiar entre diferentes hilos para pasar a través o ver el estado de
  • Puede manejar la conexión a un proceso ya iniciado o leer un volcado de núcleo, además de iniciar el programa en gdb

Si tal programa no existe, me gustaría conocer las experiencias que las personas han tenido con programas que cumplen al menos algunos de los puntos clave. ¿Alguien tiene alguna recomendación?

Editar:
Enumerar las posibilidades es genial, y tomaré lo que pueda, pero sería aún más útil si pudiera incluir en sus respuestas:
(a) Ya sea que haya usado o no esta GUI y, en caso afirmativo, qué comentarios positivos / negativos tiene sobre ella.
(b) Si sabe, cuáles de las funciones mencionadas anteriormente son compatibles o no

Las listas son fáciles de encontrar, sitios como este son geniales porque puedes tener una idea de las experiencias personales de las personas con las aplicaciones.


¿Has probado gdb -w con cygwin gdb? Se supone que tiene una interfaz de Windows que funciona bastante bien.

El único problema que encontré es que en mi máquina actual no funcionó de esa manera hasta después de instalar ddd. Sospecho que requiere tcltk que se instaló cuando instalé ddd.



Detesto la idea del desarrollo de Windows, pero el depurador VC ++ está entre los mejores que he visto. No he encontrado una interfaz gráfica de usuario que se aproxime a la de VC.

GDB es increíble una vez que realmente te acostumbras. Úsalo lo suficiente para enfadarte y serás muy competente. Puedo explorar un programa haciendo todas las cosas que enumeraste sin mucho esfuerzo. Me tomó cerca de un mes sufrir por un enlace SSH a un servidor remoto antes de que fuera competente. Aunque nunca regresaría.

DDD es realmente poderoso pero estaba bastante lleno de errores. Lo encontré congelado bastante a menudo cuando recibía mensajes de GDB que no creían. Es bueno porque tiene una ventana de interfaz gdb para que pueda ver lo que está pasando y también interactuar con gdb directamente. DDD no se puede usar en una sesión X remota en mi entorno (un problema real, ya que estoy sentado en un thin client cuando hago el desarrollo de Unix) por alguna razón, por lo que es para mí.

KDevelop siguió el estilo típico de KDE y expuso TODO al usuario. También nunca tuve la suerte de depurar programas que no sean KDevelop en KDevelop.

El Gnat Programming Studio (GPS) es en realidad una buena interfaz para GDB. No solo administra los proyectos de Ada, por lo que vale la pena probar si necesita un depurador.

Podría usar Eclipse, pero es bastante pesado y muchas personas experimentadas de Unix con las que he trabajado (incluido yo) no se preocupan mucho por su interfaz, que no solo STFU y se saldrá de su camino. Eclipse también parece ocupar mucho espacio y correr como un perro.


Echa un vistazo al proyecto CDT de Eclipse. Es un complemento para Eclipse orientado hacia el desarrollo de C / C ++ e incluye una perspectiva de depuración bastante rica en características (que detrás de la escena usa GDB). Está disponible en una amplia variedad de plataformas.


Eclipse CDT proporcionará una experiencia comparable a la de usar Visual Studio. Uso Eclipse CDT a diario para escribir código y depurar procesos locales y remotos.

Si no está familiarizado con el uso de un IDE basado en Eclipse, la GUI tardará un poco en acostumbrarse. Sin embargo, una vez que llegue a comprender las ideas de GUI que son exclusivas de Eclipse (por ejemplo, una perspectiva), el uso de la herramienta se convierte en una experiencia agradable.

Las herramientas de CDT proporcionan un indexador C / C ++ decente que le permite encontrar rápidamente referencias a métodos en su base de código. También proporciona una buena herramienta de expansión de macros y soporte de refactorización limitado.

Con respecto al soporte para la depuración, CDT puede hacer todo lo que esté en su lista con la excepción de leer un volcado de memoria (puede admitir esto, pero nunca he intentado usar esta función). Además, mi experiencia con el código de depuración utilizando plantillas es limitada, por lo que no estoy seguro de qué tipo de experiencia proporcionará CDT a este respecto.

Para obtener más información sobre la depuración con Eclipse CDT, puede consultar estas guías:


En los últimos 15 meses utilizo insight (vino con FC6). No es genial, está escrito en Tcl / Tk, pero es simple y útil. El DDD es de calidad / utilidad similar, pero algo más difícil de usar (varios errores y omisiones de GUI). También intenté integrar gdb con mi IDE, SlickEdit. Funcionó bien (jugué unas 4 horas con él), pero no me gustaron los cambios de contexto de la GUI. Me gusta que mi IDE permanezca sin cambios mientras estoy depurando; en Windows uso SlickEdit para IDE y Visual Studio Debugger para la depuración. Entonces, desde 3: Insight, DDD y SlickEdit, Insight es mi primera opción, lo uso> 95% del tiempo, gdb de línea de comandos y DDD componen el otro 5%. Si tengo la oportunidad, evaluaré Eclipse en algún momento, mi PC de trabajo no parece tener suficiente RAM (solo 1 GB) para ejecutar Eclipse razonablemente bien.

También he escuchado muchos elogios para TotalView, incluida la primera mano durante una entrevista de trabajo. Obtuve una evaluación para nuestra compañía a fines de 2008, pero al final no procedimos ya que gdb era lo suficientemente bueno para nuestras necesidades; Y es libre y ubicuo.


Estaba buscando un depurador para pasar por un programa en ejecución. Diga: Adjuntar. El programa fue construido con eclipse, pero debido a tal vez algunos obstáculos de subprocesamiento múltiple, no hay archivos de origen donde los aficionados. Lo que sea.

Me sentí muy cómodo con NetBeans.

  • [depurar] del menú -> Adjuntar Deugger ...
  • Como proceso eligió el de depurar.
  • como proyecto [nuevo proyecto]

Ahora la ventana desaparece y no ves nada. desprenderse del proceso. La Plaza de Lectura "Stop" ayuda.

  • Importar fuente desde el proyecto como por ejemplo carpeta. "... / MyProject / src
  • Ahora aparece en su proyecto y puede establecer puntos de interrupción.
  • de nuevo ttach depurador
  • eligió el proceso para depurar.
  • el depurador debería detenerse si el programa llega al siguiente punto de interrupción.

Ir a [ventana] -> [Depuración] -> ¿Su ventana se pondrá cómoda?


He probado un par de guis diferentes para gdb y he encontrado que DDD es el mejor de ellos. Y aunque no puedo comentar sobre otras ofertas que no sean de gdb para linux, he usado varios otros depuradores en otras plataformas.

gdb hace la mayoría de las cosas que tienes en tu lista de deseos. DDD pone un frente más agradable en ellos. Por ejemplo, la conmutación de hilos se hace más simple. Establecer puntos de interrupción es tan simple como cabría esperar.

También obtienes una ventana de cli en caso de que haya algo oscuro que quieras hacer.

La única característica de DDD que se destaca sobre cualquier otro depurador que he usado es la "gráfica" de datos. Esto le permite visualizar y organizar estructuras, objetos y memoria como cuadros que se pueden arrastrar. Al hacer doble clic en un puntero, se abrirán los datos desreferenciados con enlaces visuales al padre.


KDevelop funciona bastante bien.


Lo que se puede avanzar estará limitado por la información de depuración que produce g ++, en gran medida. Emacs proporciona una interfaz para gdb que le permite controlarla a través de las barras de herramientas / menús y mostrar datos en ventanas separadas, así como escribir comandos gdb directamente. El CDT de Eclipse proporciona herramientas similares. He oído hablar de Anjuta y Code :: Blocks pero nunca los he usado.


No encontrará nada sobrepuesto a GDB que pueda competir con el poder en bruto del depurador de Visual Studio. Es demasiado poderoso y está muy bien integrado dentro del IDE.

Para una alternativa a Linux, pruebe DDD si el software libre es lo suyo.


Qt Creator parece ser una buena cosa. Un colega me mostró una forma de configurarlo para la depuración:

  • Cree un nuevo proyecto, "Importación de un proyecto basado en Makefile".
  • Apúntelo a la carpeta de su proyecto raíz (indexará las fuentes debajo de él y es increíblemente rápido).
  • Vaya a la configuración del proyecto y agregue una configuración de ejecución, luego especifique el ejecutable que desea depurar y sus argumentos.
  • Qt Creator parece insistir en construir su proyecto antes de depurarlo. Si no desea eso, o no usa make, puede anular el comando make. Lo cambié a "true". :)

Puede parecer un poco de trabajo para depurar una aplicación que ya había compilado, pero vale la pena. El depurador muestra subprocesos, pilas y variables locales de manera similar a Visual Studio e incluso utiliza muchos de los mismos métodos abreviados de teclado. Parece manejar bien las plantillas, al menos std :: string y std :: map. Parece que se admite la conexión a procesos existentes y volcados de núcleo, aunque todavía no lo he probado.

Tenga en cuenta que lo usé por menos de una hora, pero estoy impresionado hasta ahora.


Qt Creator-on-Linux está ciertamente a la par con Visual Studio-on-Windows para C ++ en la actualidad. Incluso diría mejor en el lado del depurador.


Similar a la interfaz de eclipse gdb es la interfaz de emacs, estrechamente ligada al IDE de emacs. Si ya trabajas con emacs, te gustará:

GDB Emacs Frontend


Uso mucho DDD y es bastante poderoso una vez que aprendes a usarlo. Una cosa que diría es que no lo use sobre X sobre la WAN porque parece hacer muchas actualizaciones de pantalla innecesarias.

Además, si no estás emparejado con GDB y no te importa juntar un poco de dinero, entonces intentaría TotalView. Tiene un poco de una curva de aprendizaje empinada (definitivamente podría ser más intuitiva), pero es el mejor depurador de C ++ que he usado en cualquier plataforma y puede extenderse para inspeccionar sus objetos de manera personalizada (lo que le permite ver un Lista de STL como una lista real de objetos, y no un grupo de miembros de datos internos confusos, etc.)


Utilice www.zero-bugs.com/ Zero debugger, requiere el soporte de C ++ 0x de gcc


Yo uso cgdb, simple y útil


VisualGDB es otro complemento de Visual Studio para desarrollar y depurar aplicaciones en linux y plataformas integradas.





debugging