it-swarm-es.tech

¿Hay una GUI gdb de C++ para Linux?

Brevemente: ¿Alguien sabe de una GUI para gdb que la ponga 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 la depuración de 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 atravesar inteligentemente el código y las estructuras de datos al tiempo que muestra información relevante, como los tipos de parámetros.
  • Puede manejar aplicaciones de subprocesos y cambiar entre diferentes subprocesos para avanzar 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 importantes. ¿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 pudieras incluir en tus respuestas:
(a) Ya sea que hayas usado o no esta GUI y, de ser así, qué comentarios positivos/negativos tienes al respecto.
(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.

201
HappyDude

No encontrará nada GDB superpuesto que pueda competir con la potencia pura 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.

56
Vicent Marti

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.

La herramienta CDT proporciona 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 herramienta de expansión de macros de Niza y un 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:

83
Jon Ball

gdb -tui funciona bien si quieres algo GUI-ish, pero aún basado en caracteres.

78
Carleton

Echa un vistazo a Nemiver C/C++ Debugger . Es fácil de instalar en Ubuntu (Herramientas de desarrollo/Depuración).

Actualización: Nuevo enlace.

46
Sergey Shandar

Detesto la idea del desarrollo de Windows, pero el depurador VC++ está entre los mejores que he visto. No he encontrado un extremo delantero de la GUI que se aproxime al VC uno.

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. Encontré que se congeló bastante a menudo cuando recibió mensajes de GDB que no se quejaban. 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 un buen front-end 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 mucha gente Unix experimentada con la que he trabajado (incluido yo) no se preocupa mucho por su interfaz, que no solo STFU y se apartará de su camino. Eclipse también parece ocupar mucho espacio y correr como un perro.

29
Adam Hawes

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 quiere 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 hasta ahora estoy impresionado.

28
Soulman

Uso gdb, simple y útil.

26
cod

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 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.)

16
Nick Bastin

Echa un vistazo al proyecto Eclipse CDT. Es un complemento para Eclipse orientado al 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.

8
user14636

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

Usé KDbg (solo funciona bajo KDE).

5
codeguru

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.

5
Marv

Hay un IDE que falta en esta lista y que es muy eficiente (lo he usado en muchos proyectos de C/C++ sin ningún problema): Netbeans .

5
Florent

DDD es el GNU frontend para gdb: http://www.gnu.org/software/ddd/

5
mmattax

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 son de gdb para linux, he usado varios otros depuradores en otras plataformas.

gdb hace la mayoría de las cosas que tiene en su 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.

4
Andrew Edgecombe

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

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

Tengo una experiencia positiva con esta herramienta al depurar aplicaciones de Android en dispositivos reales usando Eclipse.

3
Viktor Malyi

Como alguien familiarizado con Visual Studio, he buscado varios IDE de código abierto para reemplazarlo, y KDevelop es la IMO más cercana a ser algo que una persona de Visual C++ puede simplemente sentarse y comenzar a usar. Cuando ejecutas el proyecto en modo de depuración, usa gdb pero kdevelop se encarga de todo, para que no tengas que saber que es gdb; estás solo paso a paso o asignando relojes a las variables.

Todavía no es tan bueno como el depurador de Visual Studio, desafortunadamente.

3
Dennis Ferron

No menciona si está utilizando Windows o UNIX.

En los sistemas UNIX, KDevelop es bueno, pero uso KDbg porque es fácil de usar y también funciona con aplicaciones no desarrolladas en KDevelop.

Eclipse es bueno en ambas plataformas.

En Windows, hay un gran paquete llamado Wascana Desktop Developer que es Eclipse CDT y MinGW, todo empaquetado y preconfigurado muy bien para el mínimo dolor. Es lo mejor que he encontrado para desarrollar GNU código en Windows.

He usado todos estos depuradores y ninguno de ellos es tan bueno como MS Dev Studio. Eclipse/Wascana es probablemente el más cercano, pero tiene limitaciones como que no puede ingresar a DLL y no hace un buen trabajo al examinar las variables.

3
Adam Pierce

Lo que se puede avanzar está 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.

3
Allen

El Código: Bloques C++ IDE tiene una envoltura gráfica, con algunas de las características que deseas, pero nada como la potencia de VS.

2
crobar

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

2
Sergey Zhukov

¿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.

1
BubbaT

KDevelop funciona bastante bien.

1
Harold Ekstrom

Si está buscando gdb en Visual Studio, compruebe WinGDB .

0
Dominic.wig

La última versión de Geany lo admite (aunque solo en Linux)

0
Milan Babuškov

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 traté de integrar gdb con mi IDE, SlickEdit. Funcionó bien (jugué unas 4 horas con él), pero no me gustaron los cambios de contexto GUI. Me gusta que mi IDE permanezca sin cambios mientras estoy depurando; en Windows utilizo 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 (1GB solamente) 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.

0
Radim Cernej

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

Me sentí muy cómodo con NetBeans.

  • [depurar] del menú -> Adjuntar Deugger ...
  • como proceso elegimos 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?.

0
Cutton Eye

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

0
siddhusingh