it-swarm-pt.tech

Existe uma GUI em gdb em C ++ para Linux?

Resumidamente: alguém sabe de uma GUI para o gdb que a coloca no mesmo nível ou perto do conjunto de recursos que você obtém na versão mais recente do Visual C++?

Em detalhes: Como alguém que passou muito tempo programando no Windows, um dos maiores obstáculos que encontrei sempre que tenho que codificar C++ no Linux é que depurar qualquer coisa usando o comando gdb me leva várias vezes mais do que em Visual Studio, e não parece estar melhorando com a prática. Algumas coisas são mais fáceis ou mais rápidas de expressar graficamente.

Especificamente, estou procurando uma GUI que:

  • Lida com todo o básico, como passar por cima e em código, observar variáveis ​​e pontos de interrupção
  • Entende e pode exibir o conteúdo de tipos de dados C++ complexos e aninhados
  • Não se confunda e, de preferência, pode percorrer de forma inteligente as estruturas de código e dados modeladas enquanto exibe informações relevantes, como os tipos de parâmetro
  • Pode manipular aplicativos encadeados e alternar entre diferentes encadeamentos para percorrer ou visualizar o estado de
  • Pode manipular anexar a um processo já iniciado ou ler um dump principal, além de iniciar o programa em gdb

Se tal programa não existe, então eu gostaria de ouvir sobre experiências que as pessoas tiveram com programas que atendem a pelo menos alguns dos pontos. Alguém tem alguma recomendação?

Editar:
Listando as possibilidades é ótimo, e eu vou pegar o que eu posso conseguir, mas seria ainda mais útil se você pudesse incluir em suas respostas:
(a) Se você realmente usou essa GUI e, em caso afirmativo, que comentários positivos/negativos você tem sobre isso.
(b) Se você sabe quais dos recursos acima mencionados são/não são suportados

As listas são fáceis de encontrar, sites como esse são ótimos porque você pode ter uma idéia das experiências pessoais das pessoas com os aplicativos.

201
HappyDude

Você não encontrará alguma coisa sobrepondo o GDB que pode competir com o poder bruto do depurador do Visual Studio. É muito poderoso e está muito bem integrado dentro do IDE.

Para uma alternativa Linux, tente DDD se o software livre é sua coisa.

56
Vicent Marti

O Eclipse CDT fornecerá uma experiência comparável ao uso do Visual Studio. Eu uso o Eclipse CDT diariamente para escrever códigos e depurar processos locais e remotos.

Se você não estiver familiarizado com o uso de um IDE baseado em Eclipse, a GUI demorará um pouco para se acostumar. No entanto, assim que você entender as idéias da GUI exclusivas do Eclipse (por exemplo, uma perspectiva), o uso da ferramenta se tornará uma experiência interessante.

A ferramenta CDT fornece um indexador C/C++ decente que permite localizar rapidamente referências a métodos em sua base de código. Ele também fornece uma ferramenta de expansão de macro do Nice e suporte limitado à refatoração.

Com relação ao suporte para depuração, o CDT é capaz de fazer tudo em sua lista, com a exceção de ler um dump principal (ele pode suportar isso, mas eu nunca tentei usar esse recurso). Além disso, minha experiência com o código de depuração usando modelos é limitada, então não tenho certeza sobre o tipo de experiência que o CDT fornecerá a esse respeito.

Para obter mais informações sobre depuração usando o Eclipse CDT, você pode querer verificar estes guias:

84
Jon Ball

o gdb -tui funciona bem se você quiser algo com interface gráfica, mas ainda com base em caracteres.

78
Carleton

Confira Nemiver C/C++ Debugger . É fácil de instalar no Ubuntu (Developer Tools/Debugging).

Atualização: Novo link.

46
Sergey Shandar

Eu detesto a idéia de desenvolvimento do Windows, mas o depurador VC++ está entre os melhores que eu já vi. Eu não encontrei um front-end GUI que chegue perto do VC um.

O GDB é incrível quando você realmente se acostuma. Use com raiva suficiente e você se tornará muito proficiente. Eu posso trabalhar em torno de um programa fazendo todas as coisas que você listou sem muito esforço. Levou um mês ou mais de sofrimento em um link SSH para um servidor remoto antes de eu ser proficiente. Eu nunca voltaria embora.

DDD é realmente poderoso, mas foi bastante bugs. Eu achei congelou bastante quando recebi mensagens do GDB que não se encaixavam. É bom porque tem uma janela de interface do gdb para que você possa ver o que está acontecendo e também interagir diretamente com o gdb. O DDD não pode ser usado em uma sessão remota do X no meu ambiente (um problema real, já que estou sentado em um thin client quando eu faço o Unix dev) por algum motivo, então é para mim.

O KDevelop seguiu o estilo típico do KDE e expôs TUDO ao usuário. Eu também nunca tive nenhuma chance de depurar programas que não são do KDevelop no KDevelop.

O Gnat Programming Studio (GPS) é na verdade um bom front-end para o GDB. Ele não apenas gerencia projetos Ada, então vale a pena experimentar se você precisa de um depurador.

Você poderia usar o Eclipse, mas é um peso muito pesado e muitas pessoas experientes do Unix com quem eu trabalhei (eu incluído) não ligam muito para a sua interface, que não é apenas STFU e sai do seu caminho. O Eclipse também parece ocupar muito espaço e funcionar como um cachorro.

29
Adam Hawes

Qt Creator parece ser uma coisa boa. Um colega me mostrou uma maneira de depurar:

  • Crie um novo projeto, "Importar do Projeto Baseado em Makefile".
  • Aponte para a sua pasta de projeto raiz (indexará as fontes sob ela e será impressionantemente rápida).
  • Vá para as configurações do projeto e adicione uma configuração de execução, em seguida, especifique o executável que você deseja depurar e seus argumentos.
  • O Qt Creator parece insistir em construir seu projeto antes de depurá-lo. Se você não quer isso, ou não usa make, você pode sobrescrever o comando make. Eu mudei para "true". :)

Isso pode parecer um pouco demais para depurar um aplicativo que eu já havia compilado, mas vale a pena. O depurador mostra segmentos, pilhas e variáveis ​​locais de maneira semelhante ao Visual Studio e ainda usa muitos dos mesmos atalhos de teclado. Parece manipular modelos bem, pelo menos, std :: string e std :: map. Anexar a processos existentes e core dumps parece ser suportado, embora eu não tenha testado ainda.

Tenha em mente que eu usei por menos de uma hora e agora, mas estou impressionado até agora.

28
Soulman

Eu uso o gdb, simples e útil

26
cod

Eu uso DDD muito, e é muito poderoso quando você aprende a usá-lo. Uma coisa que eu diria é que não use X sobre o WAN porque ele parece fazer muitas atualizações de tela desnecessárias.

Além disso, se você não está acasalado com o GDB e não se importa de gastar um pouco de dinheiro, eu tentaria o TotalView. Ele tem uma curva de aprendizado bastante íngreme (definitivamente poderia ser mais intuitivo), mas é o melhor depurador C++ que já usei em qualquer plataforma e pode ser estendido para introspectar seus objetos de formas personalizadas (permitindo, assim, visualizar um STL lista como uma lista real de objetos, e não um monte de membros de dados internos confusos, etc.)

16
Nick Bastin

Confira o projeto Eclipse CDT. É um plugin para o Eclipse voltado para o desenvolvimento de C/C++ e inclui uma perspectiva de depuração razoavelmente rica em recursos (que nos bastidores usa o GDB). Está disponível em uma ampla variedade de plataformas.

8
user14636

Confortável semelhante ao frontend do Eclipse gdb é o frontend do emacs, fortemente ligado ao IDE do emacs. Se você já trabalha com o emacs, vai gostar:

GDB Emacs Frontend

7
Johannes Schaub - litb

Eu usei o KDbg (só funciona no KDE).

5
codeguru

Qt Creator-on-Linux é certamente a par com o Visual Studio-on-Windows para C++ hoje em dia. Eu diria até melhor no lado do depurador.

5
Marv

Há um IDE que está faltando nessa lista e que é muito eficiente (usei-o em muitos projetos C/C++ sem nenhum problema): Netbeans .

5
Florent

DDD é o frontend do GNUpara o gdb: http://www.gnu.org/software/ddd/

5
mmattax

Eu tentei um par de guis diferentes para o gdb e encontrei o DDD para ser o melhor deles. E enquanto eu não posso comentar sobre outras ofertas não-gdb para o Linux eu usei um número de outros depuradores em outras plataformas.

o gdb faz a maioria das coisas que você tem na sua lista de desejos. DDD coloca uma frente melhor neles. Por exemplo, a troca de threads é simplificada. Definir pontos de interrupção é tão simples quanto você esperaria.

Você também terá uma janela cli caso haja algo obscuro que você queira fazer.

O único recurso do DDD que se destaca acima de qualquer outro depurador que usei é o "gráfico" de dados. Isso permite exibir e organizar estruturas, objetos e memória como caixas arrastáveis. Clicar duas vezes em um ponteiro abrirá os dados não referenciados com links visuais de volta para o pai.

5
Andrew Edgecombe

Você já deu uma olhada em depurador DS-5 ?

Há uma versão paga que inclui muitos recursos úteis, mas você também pode usar o Community Edition gratuitamente (o que também é bastante útil especialmente para sistemas incorporados).

Eu tenho uma experiência positiva com esta ferramenta ao depurar Android aplicativos em dispositivos reais usando o Eclipse.

3
Viktor Malyi

Como alguém familiarizado com o Visual Studio, examinei vários IDE de código aberto para substituí-lo, e o KDevelop é o mais próximo a ser algo que uma pessoa do Visual C++ pode simplesmente sentar e começar a usar. Quando você executa o projeto no modo de depuração, ele usa o gdb, mas o kdevelop lida com a coisa toda para que você não precise saber que é o gdb; você está apenas dando um passo ou atribuindo relógios às variáveis.

Ainda não é tão bom quanto o Visual Studio Debugger, infelizmente.

3
Dennis Ferron

Você não menciona se está usando o Windows ou o UNIX.

Nos sistemas UNIX, KDevelop é bom, mas eu uso KDbg porque é fácil de usar e também funciona com aplicativos não desenvolvidos no KDevelop.

Eclipse é bom em ambas as plataformas.

No Windows, há um ótimo pacote chamado Wascana Desktop Developer que é o Eclipse CDT e o MinGW, tudo empacotado e pré-configurado bem para o mínimo de dor. É a melhor coisa que eu encontrei para desenvolver código GNUno Windows.

Eu usei todos esses depuradores e nenhum deles é tão bom quanto o MS Dev Studio. Eclipse/Wascana é provavelmente o mais próximo, mas tem limitações como você não pode entrar em DLLs e não faz um trabalho tão bom em examinar variáveis.

3
Adam Pierce

O que pode ser percorrido será limitado pelas informações de depuração produzidas pelo g ++, em grande medida. O Emacs fornece uma interface para o gdb que permite controlá-lo através das barras de ferramentas/menus e exibir dados em janelas separadas, bem como digitar diretamente os comandos do gdb. O CDT do Eclipse fornece ferramentas semelhantes. Eu já ouvi falar de Anjuta e Code :: Blocks, mas nunca os usei.

3
Allen

O Código: Blocos C++ IDE tem um wrapper gráfico, com alguns dos recursos que você quer, mas nada como o poder do VS.

2
crobar

VisualGDB é outro plugin do Visual Studio para desenvolver e depurar aplicativos em plataformas linux e embarcadas.

2
Sergey Zhukov

Você já tentou gdb -w com cygwin gdb. É suposta ter uma interface do Windows que funciona razoavelmente bem.

O único problema que encontrei é que na minha máquina atual ele não funcionava assim até que eu instalasse o ddd. Eu suspeito que isso requer tcltk que foi instalado quando eu instalei o ddd.

1
BubbaT

O KDevelop funciona muito bem.

1
Harold Ekstrom

Se você estiver procurando pelo gdb no Visual Studio, verifique WinGDB .

0
Dominic.wig

A versão mais recente do Geany suporta isso (apenas no Linux, no entanto)

0
Milan Babuškov

Nos últimos 15 meses eu uso o insight (veio com o FC6). Não é ótimo, está escrito em Tcl/Tk, mas é simples e útil. O DDD é de qualidade/utilidade similar, mas um pouco mais difícil de usar (várias dicas e omissões de GUI). Eu também tentei integrar o gdb com o meu IDE, o SlickEdit. Funcionou bem (eu toquei umas 4 horas com ele), mas eu não gostei dos interruptores de contexto da GUI. Eu gosto do meu IDE para permanecer inalterado enquanto eu estou depurando; no Windows eu uso o SlickEdit para IDE e o Visual Studio Debugger para depuração. Assim, a partir do 3: Insight, DDD e SlickEdit, Insight é a minha primeira opção, eu uso> 95% do tempo, gdb de linha de comando e DDD compõem os outros 5%. Se eu tiver a chance, vou eval Eclipse em algum momento, o meu PC de trabalho não parece ter o suficiente RAM (1GB apenas) para executar o Eclipse razoavelmente bem.

Eu também ouvi muitos elogios pelo TotalView, incluindo 1ª mão durante uma entrevista de emprego. Eu obtive uma avaliação para a nossa empresa no final de 2008, mas no final não procedemos porque o gdb era bom o suficiente para as nossas necessidades; e é gratuito e onipresente.

0
Radim Cernej

Eu estava procurando por um depurador para percorrer um programa em execução. Diga: Anexar. O programa foi construído com o Eclipse, mas por causa de algumas obstruções multithreading, não há arquivos de origem que gostem. Tanto faz.

Fiquei muito contente com o NetBeans.

  • [depuração] do menu -> Anexar Deugger ...
  • como processo escolheu aquele para depurar
  • como projeto [novo projeto]

Agora a janela desaparece e você não vê nada. desligue do processo. O quadrado de leitura "Stop" ajuda.

  • fonte de importação do projeto como, e. pasta. ".../MyProject/src
  • Agora aparece em seu projeto e você pode definir pontos de interrupção.
  • novamente depurador
  • escolheu o processo para depurar.
  • o depurador deve parar se o programa atingir o próximo ponto de interrupção.

Indo para [janela] -> [Depuração] -> Sua janela ficará confortável?.

0
Cutton Eye

Use www.zero-bugs.com/ Zero debugger, requer suporte a C++ 0x do gcc

0
siddhusingh