2008-09-17 15 views
189

En pocas palabras: ¿Alguien sabe de una GUI para gdb que la pone a la par o cerca del conjunto de características que obtienes en la versión más reciente de Visual C++?¿Hay una GUI de C++ gdb para Linux?

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

En concreto, estoy en busca de una interfaz gráfica de usuario que:

  • Maneja todos los aspectos básicos como caminar sobre & en código, ver las variables y los puntos de interrupción
  • entienda y pueda mostrar el contenido del complejo & C anidada ++ tipos de datos
  • No se confunden y, preferiblemente, pueden atravesar inteligentemente el código de plantilla y las estructuras de datos mientras se muestra información relevante, como los tipos de parámetros
  • C un mango aplicaciones roscados y cambiar entre diferentes hilos al paso a través o ver el estado de
  • Puede manejar unir a un proceso iniciado ya-o leer un volcado de núcleo, además de iniciar el programa en gdb

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

Editar:
inmueble a cabo las posibilidades es grande, y me quedo con lo que puedo conseguir, pero sería aún más útil si se pudiera incluir en sus respuestas:
(a) Sea o no en realidad usaste esta GUI y, de ser así, qué comentarios positivos/negativos tienes al respecto.
(b) Si sabe, cuáles de las características mencionadas anteriormente son/no compatibles

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

+18

1 de Too. "Sitios como este son grandes porque se puede tener una idea de las experiencias personales de la gente." muchas personas hoy en día solo hacen una lista d ump que en mi humilde opinión completamente pierde el punto. – kizzx2

+1

Votación para cerrar como fuera del tema porque "recomienda encontrar una herramienta". –

+0

En ingeniería inversa: http://reverseengineering.stackexchange.com/questions/1392/decent-gui-for-gdb –

Respuesta

57

No encontrará nada superposición de GDB que puede competir con la potencia bruta del depurador de Visual Studio. Es demasiado poderoso, y está muy bien integrado dentro del IDE.

Para una alternativa de Linux, prueba DDD si el software libre es lo tuyo.

+77

'Aunque obtendré ...'. Esta táctica de psicología inversa también funciona bien en Slashdot. – fizzer

+6

@fizzer - Debería. Ahí es donde copió y pegó esta respuesta. :-) –

+5

+1 para el amor de fuente cerrada. –

2

Lo que se puede atravesar va a estar limitado por la información de depuración que genera g ++, en gran medida. Emacs proporciona una interfaz para gdb que le permite controlarlo a través de las barras de herramientas/menús y mostrar datos en ventanas separadas, así como también 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.

8

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 funciones (que detrás de escena usa GDB). Está disponible en una amplia variedad de plataformas.

1

KDevelop funciona bastante bien.

0

La última versión de Geany lo apoya (sólo en Linux, sin embargo)

70

GDB -tui funciona bien si quieres algo GUI-ish, pero todavía se basa carácter.

+42

También puede pasar al modo TUI (interfaz de usuario de texto) mientras está en gdb utilizando el comando '-'. Volver al símbolo del sistema es Ctrl-X Ctrl-A. Mientras está en modo TUI, arriba, abajo, izquierda y derecha se mueven a través de la fuente. Use Ctrl-P, Ctrl-N, Ctrl-F y Ctrl-B para navegar en el historial de línea de comando. –

+0

Esto es exactamente lo que estaba buscando. El poder de la línea de comandos de gdb con algunas vistas útiles que se actualizan a medida que avanzo. Un –

+4

.gdbinit de esteroides le da un carácter realmente impresionante interfaz gráfica de usuario basada, con el color: https://github.com/cyrus-and/gdb-dashboard – cs01

16

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

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

+0

no puedo conseguir DDD para trabajar sobre X remoto en absoluto; simplemente se bloquea con errores Xlib en mi cliente ligero :( –

+0

TotalView parece una alternativa viable. No considero DDD a ser mejor que el BGF maldice interfaz. –

3

Como alguien familiarizado con Visual Studio, he buscado varios IDE de código abierto para reemplazarlo, y KDevelop viene el IMO más cercano a ser algo que una persona de Visual C++ puede sentarse y empezar a usar. Cuando ejecutas el proyecto en modo de depuración, usa gdb pero kdevelop prácticamente maneja todo para que no tengas que saber si es gdb; solo estás dando pasos o asignando relojes a las variables.

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

80

Eclipse CDT proporcionará una experiencia comparable al uso de Visual Studio. Uso Eclipse CDT diariamente 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 comprenda 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ódigos. También proporciona una buena herramienta de expansión macro y soporte de refactorización limitado.

Con respecto a la compatibilidad con la depuración, CDT puede hacer todo lo que esté en su lista, con la excepción de leer un volcado del núcleo (puede admitir esto, pero nunca he intentado utilizar esta característica). Además, mi experiencia con el código de depuración mediante el uso de 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 acerca de la depuración usando Eclipse CDT, es posible que desee echa un vistazo a estas guías:

+10

núcleo leyendo descargas es compatible. (Se refiere como el depurador postmortem.) –

+0

que he tenido mejor experiencia en Eclipse CDT depuración que en Visual Studios. no he dado MSVC demasiado de una oportunidad, sin embargo. – notlesh

+1

creo que [QtCreator] (http://doc.qt.io/qtcreator /) debe mencionarse junto con Eclipse, ya que es comparable. – nonsensickle

4

he intentado un par de diferentes interfaces gráficas de usuario para gdb y han encontrado que DDD es el mejor de ellos. Y aunque no puedo comentar sobre otras ofertas no gdb para linux, he usado una cantidad de depuradores en otras plataformas.

gdb hace la mayoría de las cosas que tiene en su lista de deseos. DDD les pone un mejor frente. Por ejemplo, el cambio de hilo se simplifica.Establecer puntos de interrupción es tan simple como cabría esperar.

también se obtiene una ventana de CLI en caso de que hay algo oscuro que desea hacer.

La única característica de DDD que se destaca sobre cualquier otro depurador que he utilizado es la "representación 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 hacia el padre.

3

Utilicé KDbg (solo funciona bajo KDE).

+1

KDbg cuenta no es limitado a KDE. – nobar

1

Ha intentado 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.

6

Similar cómodo al eclipse gdb frontend es el frontend de emacs, estrechamente relacionado con emacs IDE. Si ya trabaja con emacs, le va a gustar:

GDB Emacs Frontend

3

Usted no menciona si está usando Windows o UNIX.

En 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 embalado y preconfigurado muy bien para el mínimo de dolor. Es lo mejor que he encontrado para desarrollar código GNU en Windows.

he utilizado todos estos depuradores y ninguno de ellos son tan buenos como MS Dev Studio. Eclipse/Wascana es probablemente el más cercano, pero tiene limitaciones como que no se puede acceder a las DLL y no funciona tan bien al examinar las variables.

26

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

BGF es impresionante una vez que realmente se acostumbre a ella. Úsalo con suficiente ira y serás muy hábil. Puedo navegar rápidamente por un programa haciendo todo lo que enlistó sin mucho esfuerzo. Tomó un mes o más de sufrimiento a través de un enlace SSH a un servidor remoto antes de que fuera competente. Yo nunca volvería.

DDD es muy potente, pero era bastante buggy. Lo encontré congelado con bastante frecuencia cuando recibí mensajes del GDB que no funcionaban. Es bueno porque tiene una ventana de interfaz gdb para que pueda ver lo que está sucediendo y también interactuar directamente con gdb. DDD no se puede usar en una sesión remota de X en mi entorno (un problema real, ya que estoy sentado en un thin client cuando realizo el desarrollo de Unix) por algún motivo, así que no me queda nada.

KDevelop siguió el estilo típico de KDE y expuesto todo al usuario. Además, nunca tuve la suerte de depurar programas no KDevelop en KDevelop.

El Gnat Programming Studio (GPS) es realmente un buen front-end para GDB. No solo administra proyectos Ada, por lo que vale la pena probarlo si necesita un depurador.

Puede usar Eclipse, pero es bastante pesado y muchas personas con experiencia en Unix con las que he trabajado (yo incluido) no se preocupan demasiado por su interfaz, que no solo se quedará sin STFU y saldrá de su camino. Eclipse también parece ocupar mucho espacio y corre como un perro.

+1

Sólo quería conectar mi proyecto, gdbgui (https://github.com/cs01/gdbgui). es un cliente/servidor arquitectura, por lo que funciona bien depuración máquinas remotas sin una sesión X requerido. también tiene un terminal de interactuar directamente w/GDB, y tiene efectos visuales para mostrar las estructuras de datos, similar a DDD. – cs01

23

utilizo cgdb, simple y útil

+0

Dios te bendiga, amigo – odiszapc

0

Si está buscando BGF bajo Visual Studio, a continuación, comprobar WinGDB.

0

En los últimos 15 meses utilizo insight (vino con FC6). No es genial, está escrito en Tcl/Tk, pero es simple y útil. DDD tiene una 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 interruptores de contexto de la 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, la uso> 95% de las veces, gdb de línea de comando y DDD conforman 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 muchas alabanzas para TotalView, incluida la primera mano durante una entrevista de trabajo. Obtuve una evaluación para nuestra empresa a fines de 2008, pero al final no procedimos ya que gdb era lo suficientemente bueno para nuestras necesidades; y es gratis y omnipresente.

27

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

  • Cree un nuevo proyecto, "Importación del proyecto basado en el archivo Makefile".
  • Dirígete a tu carpeta de proyecto raíz (indexará las fuentes debajo de ella, y es impresionantemente 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 "verdadero". :)

Puede parecer mucho trabajo para depurar una aplicación que ya había compilado, pero vale la pena. El depurador muestra subprocesos, pilas y variables locales de forma similar a Visual Studio e incluso utiliza muchos de los mismos atajos 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 centrales, aunque aún no lo he probado.

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

+0

+1, también me gusta el envoltorio de gdb en el creador de qt. Funciona bastante bien. También puede crear rutinas de volcado, etc. –

5

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.

42

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

Actualización: Nuevo enlace.

+0

Fue muy fácil de instalar y usar. ¡Amándolo! – Eloff

+0

Nunca escuché esto antes de publicar. Mejor GUI de depuración en Linux. – Micah

+0

El enlace está roto –

1

El Code:Blocks C++ IDE tiene un contenedor gráfico, con algunas de las características que desea, pero nada como el poder de VS.

0

Utilice www.zero-bugs.com/ Depurador cero, requiere soporte C++ 0x de gcc

+1

página web www.zero-bugs.com/ se ha reducido enormemente – vharron

5

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

+0

prefiero cgdb ahora que me he acostumbrado a ella, pero Netbeans había una gran piedra tales escalonamiento de VS. – zzxyz

2

VisualGDB es otro plugin de Visual Studio para desarrollar y depurar aplicaciones en Linux y plataformas integradas.

3

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

Hay una versión paga que incluye muchas funciones útiles, pero también puede usar Community Edition gratis (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 que usan eclipse.

0

Estaba buscando un depurador para pasar por un programa en ejecución. Diga: Adjunte. El programa se compiló con eclipse, pero debido a que tal vez algunas obstrucciones de varios subprocesos, no hay archivos de origen donde se encariñen. Lo que sea.

Me volví muy cómodo con NetBeans.

  • [depuración] en el menú -> Adjuntar Deugger ...
  • como proceso escogió la de depurar
  • como proyecto [nuevo proyecto]

Ahora los disappars ventana y ves nada. desprenderse del proceso. Read Square "Stop" ayuda.

  • importan origen del proyecto como p. Ej. carpeta. " .../MyProject/src
  • Ahora aparece en su proyecto, y se puede establecer puntos de interrupción.
  • nuevo ttach depurador
  • eligieron el proceso de depuración.
  • depurador debe detenerse si llega Programm siguiente punto de parada .

ir a [ventana] -> [depuración] -> ¿su escena da compfortable

Cuestiones relacionadas