Pergunta

Você tem sugestões de ferramentas para facilitar a tarefa de entender o código C / C ++? Nós acabou de herdar um grande pedaço de software escrito por outros e precisamos chegar rapidamente até a velocidade sobre ele. Qualquer conselhos sobre ferramentas que pode simplificar esta tarefa?

Foi útil?

Solução

SourceInsight e Entenda para C ++ são as melhores ferramentas que você pode obter para análise c / c ++ código incluindo fluxogramas.

Outras dicas

Profiling software dá-lhe uma idéia de quais funções foram chamados.

Se você pode usar Linux, tente KCachegrind

Pessoalmente, eu uso o depurador. Executar através do código e ver o que seu fazer, e onde o seu curso é o único caminho.

No entanto, você pode executá-lo através de alguma documentação-geradores que (às vezes) de ajuda. Um bom exemplo é doxygen .

Doxygen é muito bom para a geração de diagramas de código sem a aplicação de marcação, se você ligar a opção EXTRACT_ALL. Você precisa GraphViz instalado para obter diagramas gerados com a configuração HAVE_DOT. Acho tê-lo instalado e deixando o espaço em branco DOT_PATH bem funciona no Windows mas no OS / X continuo tendo para apontar diretamente para o local da ferramenta de ponto.

Há uma excelente Código Spelunking na ACM Queue que fala mais sobre utilizando doxygen e DTrace.

kscope, construída sobre o utilitário cscope, se você estiver em Linux (KDE). A melhor coisa que eu já utilizado (e usar todo o tempo) para deleve em algum enorme pedaço de código desconhecido que eu tenho que modificar de alguma forma ou que API estou a empregar para minhas necessidades. Entre suas características estão o banco de dados de referência cruzada, que pode ser pesquisado em uma infinidade de maneiras: você pode encontrar todas as referências de um símbolo, a sua definição global, encontrar chamadores / callees de uma função e muito mais. Ele ainda tem um built-in IDE e uma capacidade de mostrar um call-graph.

Doxygen lhe dará diagramas de relacionamento de classe se você usar graphviz, mesmo se você não tiver especificamente preparado para -lo.

Existem algumas ferramentas como o Egito http://www.gson.org/egypt/egypt .html que o trabalho, mas só se você corresponder à versão GCC esperado usado para compilar o código ea versão exata do gerador callgraph. O mesmo pode ser dito sobre codeviz http://www.csn.ul.ie / ~ mel / projetos / codeviz /

Outra opção é valgrind usado no modo cachegrind (que gera um tipo de callgraph que você pode seguir a partir do programa kcachegrind.

Eu personnaly usar ferramentas depurador do Visual Studio.

Ele vem com o recurso "Gráfico do chamador", que lhe permitirá visualizar o material em pequenas caixas. Além disso, a pilha de chamadas e as características habituais de relógios são geralmente tudo que eu preciso

Há também AspectBrowser que não funciona muito bem com Eclipse 3.4.0

AQtime , é uma ferramenta de perfil que exibe todas as funções que foi chamado ( e o tempo que levou), você pode definir os pontos inicial e final para a análise. Eles têm uma experiência de 30 dias.

Borland Together um tempo atrás e ele fez uma trabalho decente de gerar modelos a partir do código. Eu acredito que ele vai mesmo gerar diagramas de sequência de código. Tenha em mente se o seu código é uma bagunça seu modelo será demasiado. E se bem me lembro, não é barato, mas às vezes você pode pegar um especial.

Rational Quantify também apresenta um gráfico de chamadas agradável.

i tentou uma ferramenta chamada Visustin que não é muito grande graficamente, mas faz o que diz: o fluxograma do código. http://www.aivosto.com/visustin.html

Doxygen, a coisa boa sobre ele é que vai deixar você saber enxada feio / bom é o seu código em termos de dependência cíclica de classes. Então, você será forçado a re-fator de seu código, que você não pode gostar dele: -)

SlickEdit é ótimo para navegar grandes blocos de código que você não conhece. O recurso tag permite que você lidar com o código em uma base funcional, sem ter que lidar com a qual arquivo está dentro. (EMACS realmente tem tags e é tão bom quanto SlickEdit, mas com uma curva de aprendizado um pouco íngreme)

Quando você chegar a um método ou classe ou variável que você não entende, você apenas empurrar-tag para ir a esse código, olhar sobre ele, em seguida, pop-tag de volta. (Aqueles são obrigados a teclas, por isso é muito rápida)

Você também pode usar referências Localizar para ver onde essa função / variável é utilizada.

Salva toneladas de tempo por ter que ir e descobrir qual arquivo algo está.

doxygen é uma ferramenta doc-geradora livre (semelhante ao Javadoc) que também vai produzir gráficos de relacionamento quanto bem.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top