Resumidamente: alguém sabe de uma GUI para o gdb que a aproxima ou aproxima 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 preciso codificar C ++ no Linux é que a depuração de qualquer coisa usando a linha de comando gdb me leva várias vezes mais tempo do que em Visual Studio, e não parece estar melhorando com a prática. Algumas coisas são mais fáceis ou rápidas de expressar graficamente.
Especificamente, estou procurando uma GUI que:
- Lida com todos os conceitos básicos, como passar por cima e entrar no código, observar variáveis e pontos de interrupção
- Compreende e pode exibir o conteúdo de tipos de dados C ++ complexos e aninhados
- Não se confunde e, de preferência, pode percorrer inteligentemente estruturas de código e dados modeladas enquanto exibe informações relevantes, como os tipos de parâmetro
- Pode lidar com aplicativos encadeados e alternar entre diferentes segmentos para percorrer ou exibir o estado de
- Pode lidar com a conexão com um processo já iniciado ou com a leitura de um dump principal, além de iniciar o programa em gdb
Se esse programa não existir, gostaria de ouvir sobre as experiências que as pessoas tiveram com programas que atendem a pelo menos alguns dos pontos principais. Alguém tem alguma recomendação?
Edit:
Listar as possibilidades é ótimo, e eu aceitarei o que posso obter, mas seria ainda mais útil se você incluísse em suas respostas:
(a) Se você realmente usou ou não essa GUI e se sim , que feedback positivo / negativo você tem sobre isso.
(b) Se você souber, quais dos recursos mencionados acima são / não são suportados
É fácil encontrar listas, sites como esse são ótimos porque você pode ter uma idéia da experiência pessoal das pessoas com os aplicativos.
Respostas:
Você não encontrará nada sobreposto ao GDB que possa competir com o poder bruto do depurador do Visual Studio. É poderoso demais e muito bem integrado ao IDE.
Para uma alternativa ao Linux, tente o DDD se você gosta de software livre.
fonte
O Eclipse CDT fornecerá uma experiência comparável ao uso do Visual Studio. Uso o Eclipse CDT diariamente para escrever código 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, depois de entender as idéias da GUI exclusivas do Eclipse (por exemplo, uma perspectiva), o uso da ferramenta se torna uma experiência agradável.
As ferramentas CDT fornecem um indexador C / C ++ decente que permite encontrar rapidamente referências a métodos em sua base de código. Ele também fornece uma boa ferramenta de expansão de macro e suporte limitado à refatoração.
Com relação ao suporte à depuração, o CDT é capaz de fazer tudo na sua lista, com exceção da leitura de 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, portanto, não tenho certeza de que tipo de experiência o CDT fornecerá a esse respeito.
Para obter mais informações sobre depuração usando o Eclipse CDT, convém verificar estes guias:
fonte
O gdb -tui funciona bem se você deseja algo com interface gráfica, mas ainda com base em caracteres.
fonte
Confira o Nemiver C / C ++ Debugger . É fácil de instalar no Ubuntu (Developer Tools / Debugging).
Atualização: Novo link.
fonte
O Qt Creator parece uma coisa boa. Um colega me mostrou uma maneira de configurá-lo para depuração:
Pode parecer um pouco trabalhoso para depurar um aplicativo que eu já compilei, mas vale a pena. O depurador mostra threads, pilhas e variáveis locais de maneira semelhante ao Visual Studio e até usa muitos dos mesmos atalhos de teclado. Parece lidar bem com modelos, pelo menos std :: string e std :: map. Anexar processos existentes e core dumps parece ser suportado, embora ainda não o tenha testado.
Lembre-se de que eu o usei por menos de uma hora agora, mas estou impressionado até agora.
fonte
Detesto a ideia de desenvolvimento do Windows, mas o depurador VC ++ está entre os melhores que já vi. Não encontrei um front end da GUI que se aproxima do VC.
O GDB é incrível quando você realmente se acostuma. Use-o com raiva o suficiente e você se tornará muito eficiente. Eu posso me virar em um programa fazendo todas as coisas que você listou sem muito esforço. Demorou mais ou menos um mês para sofrer um vínculo SSH com um servidor remoto antes que eu fosse proficiente. Eu nunca voltaria embora.
O DDD é realmente poderoso, mas foi bastante complicado. Eu descobri que ele congelava com bastante frequência quando recebia mensagens do GDB de que ele não estava grudado. É bom porque tem uma janela de interface 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 X remota no meu ambiente (um problema real, já que estou sentado em um thin client quando eu faço o desenvolvimento do Unix) por algum motivo, por isso, é algo que me interessa.
O KDevelop seguiu o estilo típico do KDE e expôs TUDO ao usuário. Eu também nunca tive sorte em depurar programas que não são do KDevelop no KDevelop.
O Gnat Programming Studio (GPS) é realmente um bom front-end para o GDB. Ele não gerencia apenas projetos Ada, portanto vale a pena tentar se você precisar de um depurador.
Você pode usar o Eclipse, mas é bastante pesado e muitas pessoas experientes do Unix com quem trabalhei (inclusive eu) não se importam muito com a interface, o que não é apenas o STFU e fica fora do seu caminho. O Eclipse também parece ocupar muito espaço e correr como um cachorro.
fonte
Eu uso cgdb, simples e útil
fonte
Eu uso muito o DDD e é muito poderoso quando você aprende a usá-lo. Uma coisa que eu diria é que não o use sobre o X na WAN, porque parece fazer muitas atualizações de tela desnecessárias.
Além disso, se você não é compatível com o GDB e não se importa de gastar um pouco de dinheiro, eu tentaria o TotalView. Ele tem um pouco de uma curva de aprendizado íngreme (definitivamente poderia ser mais intuitivo), mas é o melhor depurador de C ++ que já usei em qualquer plataforma e pode ser estendido para introspectar seus objetos de maneiras personalizadas (permitindo assim visualizar um Lista STL como uma lista real de objetos, e não um monte de membros de dados internos confusos etc.)
fonte
Confira o projeto Eclipse CDT. É um plug-in para o Eclipse voltado para o desenvolvimento de C / C ++ e inclui uma perspectiva de depuração bastante rica em recursos (que nos bastidores usa GDB). Está disponível em uma ampla variedade de plataformas.
fonte
Similarmente confortável para o frontend do eclipse gdb é o front end do emacs, fortemente vinculado ao IDE do emacs. Se você já trabalha com o emacs, vai gostar:
Frontend do Emacs do GDB
fonte
DDD é a interface GNU do gdb: http://www.gnu.org/software/ddd/
fonte
Eu usei o KDbg (funciona apenas no KDE).
fonte
Eu tentei alguns guis diferentes para o gdb e achei o DDD o melhor deles. E embora eu não possa comentar sobre outras ofertas não-gdb para linux, usei vários 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 sobre eles. Por exemplo, a troca de threads é simplificada. Definir pontos de interrupção é tão simples quanto você esperaria.
Você também recebe uma janela CLI, caso exista algo obscuro que você queira fazer.
O único recurso do DDD que se destaca acima de qualquer outro depurador que eu usei é o "gráfico" dos 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 ao pai.
fonte
O Qt Creator-on-Linux certamente está a par do Visual Studio no Windows para C ++ atualmente. Eu diria até melhor no lado do depurador.
fonte
Há um IDE que está faltando nesta lista e é muito eficiente (eu o usei em muitos projetos C / C ++ sem problemas): Netbeans .
fonte
O que pode ser explicado será limitado pelas informações de depuração que o g ++ produz, 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, além de digitar comandos gdb diretamente. O CDT do Eclipse fornece ferramentas semelhantes. Já ouvi falar de Anjuta e Code :: Blocks, mas nunca os usei.
fonte
Como alguém familiarizado com o Visual Studio, observei vários IDEs de código aberto para substituí-lo, e o KDevelop é o IMO mais próximo de 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 avançando ou atribuindo relógios a variáveis.
Ainda não é tão bom quanto o Visual Studio Debugger, infelizmente.
fonte
Você não menciona se está usando o Windows ou o UNIX.
Nos sistemas UNIX, o KDevelop é bom, mas eu uso o KDbg porque é fácil de usar e também funcionará com aplicativos não desenvolvidos no KDevelop.
O Eclipse é bom nas duas plataformas.
No Windows, existe um ótimo pacote chamado Wascana Desktop Developer, que é Eclipse CDT e MinGW, todos empacotados e pré-configurados de maneira adequada para o mínimo de esforço. É a melhor coisa que encontrei para desenvolver o código GNU no Windows.
Eu usei todos esses depuradores e nenhum deles é tão bom quanto o MS Dev Studio. O Eclipse / Wascana é provavelmente o mais próximo, mas possui limitações, como você não pode entrar em DLLs e não faz um trabalho tão bom ao examinar variáveis.
fonte
Você já deu uma olhada no depurador DS-5 ?
Existe uma versão paga que inclui muitos recursos úteis, mas você também pode usar o Community Edition de graça (o que também é bastante útil, especialmente para sistemas embarcados).
Tenho uma experiência positiva com essa ferramenta ao depurar aplicativos Android em dispositivos reais usando o eclipse.
fonte
O IDE Code: Blocks C ++ possui um invólucro gráfico, com alguns dos recursos que você deseja, mas nada como o poder do VS.
fonte
O VisualGDB é outro plugin do Visual Studio para desenvolver e depurar aplicativos em plataformas Linux e incorporadas.
fonte
O KDevelop funciona muito bem.
fonte
Você já tentou o gdb -w com o cygwin gdb. É suposto ter uma interface do Windows que funcione razoavelmente bem.
O único problema que encontrei é que na minha máquina atual não funcionou dessa maneira até depois da instalação do ddd. Eu suspeito que exija o tcltk que foi instalado quando eu instalei o ddd.
fonte
A versão mais recente do Geany é compatível (apenas no Linux)
fonte
Se você estiver procurando por gdb no Visual Studio, verifique o WinGDB .
fonte
Nos últimos 15 meses, uso o insight (fornecido com o FC6). Não é ótimo, está escrito em Tcl / Tk, mas é simples e útil. O DDD é de qualidade / utilidade semelhante, mas um pouco mais difícil de usar (várias dicas e omissões da GUI). Eu também tentei integrar o gdb ao meu IDE, o SlickEdit. Funcionou bem (joguei cerca de 4 horas com ele), mas não gostei das opções de contexto da GUI. Eu gosto que meu IDE permaneça inalterado enquanto estou depurando; no Windows, uso o SlickEdit for IDE e o Visual Studio Debugger para depuração. Assim, a partir do 3: Insight, DDD e SlickEdit, o Insight é minha primeira escolha, eu o uso> 95% das vezes, o gdb da linha de comando e o DDD compõem os outros 5%. Se eu tiver a chance, avaliarei o Eclipse em algum momento, meu PC de trabalho parece não ter RAM suficiente (apenas 1 GB) para executar o Eclipse razoavelmente bem.
Também ouvi muitos elogios ao TotalView, incluindo a primeira mão durante uma entrevista de emprego. Obtive uma avaliação para nossa empresa no final de 2008, mas no final não prosseguimos, pois o gdb era bom o suficiente para nossas necessidades; e é gratuito e onipresente.
fonte
Use www.zero-bugs.com/ Zero debugger, requer suporte C ++ 0x do gcc
fonte
Eu estava procurando por um depurador para percorrer um programa em execução. Diga: Anexe. O programa foi desenvolvido com o eclipse, mas talvez por causa de alguns obstáculos com multithread, nenhum arquivo de origem seja adequado. Tanto faz.
Fiquei muito confortável com o NetBeans.
Agora a janela desaparece e você não vê nada. desanexar do processo. O Read Square "Stop" ajuda.
Indo para [window] -> [Debugging] -> Sua janela tornará confortável.
fonte