Brevemente: ¿Alguien sabe de una GUI para gdb que lo 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 obstáculos 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 de lo que lo hace 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 elementos básicos como pasar y entrar en el código, ver variables y puntos de interrupción
- Comprende y puede mostrar el contenido de tipos de datos C ++ complejos y anidados
- No se confunde y, de preferencia, puede avanzar de manera inteligente a través de estructuras de datos y códigos con plantillas mientras muestra información relevante como los tipos de parámetros
- Puede manejar aplicaciones de subprocesos y cambiar entre diferentes subprocesos para recorrer o ver el estado de
- Puede manejar adjuntar 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, entonces me gustaría escuchar sobre las experiencias que la gente ha tenido con programas que cumplen al menos algunos de los puntos. ¿Alguien tiene alguna recomendación?
Editar:
enumerar las posibilidades es excelente, y tomaré lo que pueda obtener, pero sería aún más útil si pudiera incluir en sus respuestas:
(a) Si realmente ha utilizado esta GUI o no, y si es así , qué comentarios positivos / negativos tiene al respecto.
(b) Si sabe, cuáles de las características mencionadas anteriormente son / no son compatibles
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.
Respuestas:
No encontrará nada superpuesto a GDB que pueda competir con la potencia bruta del depurador de Visual Studio. Es demasiado poderoso, y está demasiado bien integrado dentro del IDE.
Para una alternativa de Linux, prueba DDD si lo tuyo es el software libre.
fuente
Eclipse CDT proporcionará una experiencia comparable al uso de Visual Studio. Utilizo 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 comprenda las ideas de la GUI que son exclusivas de Eclipse (por ejemplo, una perspectiva), usar la herramienta se convierte en una experiencia agradable.
Las herramientas 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 en su lista con la excepción de leer un volcado del núcleo (puede soportar 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:
fuente
gdb -tui funciona bien si quieres algo GUI-ish, pero aún basado en caracteres.
fuente
Echa un vistazo a Nemiver C / C ++ Debugger . Es fácil de instalar en Ubuntu (Herramientas para desarrolladores / Depuración).
Actualización: nuevo enlace.
fuente
Qt Creator parece algo bueno. Un colega me mostró una forma de configurarlo para la depuración:
Puede parecer un poco demasiado 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 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 ahora, pero estoy impresionado hasta ahora.
fuente
Odio la idea del desarrollo de Windows, pero el depurador VC ++ es uno de los mejores que he visto. No he encontrado una interfaz gráfica de usuario que se acerque a la VC.
GDB es increíble una vez que realmente te acostumbras. Úselo con suficiente enojo y se volverá muy competente. Puedo recorrer un programa haciendo todas las cosas que enumeraste sin mucho esfuerzo. Me tomó alrededor de un mes sufrir por un enlace SSH a un servidor remoto antes de que yo fuera competente. Aunque nunca volvería.
DDD es realmente poderoso, pero tenía muchos errores. Me pareció que se congelaba con frecuencia cuando recibía mensajes de GDB de que no se asimilaba. Es bueno porque tiene una ventana de interfaz gdb para que pueda ver lo que está sucediendo 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 cliente ligero cuando hago desarrollo de Unix) por alguna razón, así que está fuera para mí.
KDevelop siguió el estilo típico de KDE y expuso TODO al usuario. Tampoco tuve suerte al depurar programas que no son de KDevelop en KDevelop.
El Gnat Programming Studio (GPS) es realmente un buen front-end para GDB. No solo administra los proyectos de Ada, por lo que vale la pena probarlo si necesita un depurador.
Podrías 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 apartará de tu camino. Eclipse también parece ocupar mucho espacio y correr como un perro.
fuente
Yo uso cgdb, simple y útil
fuente
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á emparejado con GDB y no le importa gastar un poco de dinero, entonces probaría TotalView. Tiene una curva de aprendizaje un poco pronunciada (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 manera personalizada (lo que le permite ver un Lista STL como una lista real de objetos, y no como un grupo de miembros confusos de datos internos, etc.)
fuente
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.
fuente
Similar a la interfaz eclipse gdb es la interfaz de emacs, estrechamente vinculada al IDE de emacs. Si ya trabaja con emacs, le gustará:
GDB Emacs Frontend
fuente
DDD es la interfaz de GNU para gdb: http://www.gnu.org/software/ddd/
fuente
Usé KDbg (solo funciona bajo KDE).
fuente
He probado un par de diferentes guis para gdb y he descubierto 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 tienes en tu lista de deseos. DDD les pone un frente más agradable. Por ejemplo, el cambio de hilo se simplifica. 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 mostrar y organizar estructuras, objetos y memoria como cuadros arrastrables. Al hacer doble clic en un puntero, se abrirán los datos desreferenciados con enlaces visuales de regreso al padre.
fuente
Qt Creator-on-Linux está ciertamente a la par con Visual Studio-on-Windows para C ++ hoy en día. Incluso diría que es mejor en el lado del depurador.
fuente
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 .
fuente
Lo que se puede recorrer estará limitado por la información de depuración que produce 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 escribir comandos gdb directamente. El CDT de Eclipse proporciona herramientas similares. He oído hablar de Anjuta y Code :: Blocks pero nunca los usé.
fuente
Como alguien familiarizado con Visual Studio, he visto varios IDE de código abierto para reemplazarlo, y KDevelop es el IMO más cercano a ser algo que una persona de Visual C ++ puede simplemente sentarse y comenzar a usar. Cuando ejecuta el proyecto en modo de depuración, usa gdb pero kdevelop maneja prácticamente todo el proceso para que no tenga que saber que es gdb; solo estás caminando o asignando relojes a variables.
Todavía no es tan bueno como el Visual Studio Debugger, desafortunadamente.
fuente
No menciona si está utilizando Windows o UNIX.
En sistemas UNIX, KDevelop es bueno, pero uso KDbg porque es fácil de usar y también funcionará 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 código GNU 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 las DLL y no hace un buen trabajo al examinar las variables.
fuente
¿Alguna vez has echado un vistazo al depurador DS-5 ?
Hay una versión paga que incluye muchas funciones útiles, pero también puede usar Community Edition de forma gratuita (que también es bastante útil, especialmente para sistemas integrados).
Tengo una experiencia positiva con esta herramienta cuando depuro aplicaciones de Android en un dispositivo real usando eclipse.
fuente
El código: Blocks C ++ IDE tiene un contenedor gráfico, con algunas de las características que desea, pero nada como el poder de VS.
fuente
VisualGDB es otro complemento de Visual Studio para desarrollar y depurar aplicaciones en Linux y plataformas integradas.
fuente
KDevelop funciona bastante bien.
fuente
¿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 que instalé ddd. Sospecho que requiere tcltk, que se instaló cuando instalé ddd.
fuente
La última versión de Geany lo admite (solo en Linux, sin embargo)
fuente
Si está buscando gdb en Visual Studio, compruebe WinGDB .
fuente
En los últimos 15 meses utilizo información (vino con FC6). No es genial, está escrito en Tcl / Tk, pero es simple y útil. DDD es de calidad / utilidad similar, pero algo más difícil de usar (varios problemas 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 el 3: Insight, DDD y SlickEdit, Insight es mi primera opción, lo uso> 95% del tiempo, la línea de comandos gdb y DDD constituyen el otro 5%. Si tengo la oportunidad, evaluaré Eclipse en algún momento, mi PC de trabajo no parece tener suficiente RAM (solo 1GB) 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 empresa a fines de 2008, pero al final no procedimos ya que gdb era lo suficientemente bueno para nuestras necesidades; y es gratis y ubicuo.
fuente
Use www.zero-bugs.com/ Zero debugger, requiere soporte C ++ 0x de gcc
fuente
Estaba buscando un depurador para pasar por un programa en ejecución. Diga: adjuntar. El programa fue construido con eclipse, pero quizás debido a algunos obstáculos de subprocesos múltiples, no hay archivos fuente donde sea aficionado. Lo que sea.
Me puse muy cómodo con NetBeans.
Ahora la ventana desaparece y no ves nada. desprenderse del proceso. El cuadrado de lectura "Stop" ayuda.
Ir a [ventana] -> [Depuración] -> ¿Su ventana lo hará más cómodo?
fuente