Procurando por um analisador de código fonte livre (Função árvore de dependência) [fechado]

StackOverflow https://stackoverflow.com/questions/1408908

  •  05-07-2019
  •  | 
  •  

Pergunta

Alguém sabe onde eu posso encontrar um utilitário / aplicativo em execução no Windows que analisa fonte C e produz uma árvore de dependência funcional?

O que eu estou procurando é algo ao longo destas linhas:

PrintString-> PrintCharacter-> PrintByte-> Printf

Foi útil?

Solução

É quase certamente um exagero, mas você pode fazer isso para C, C ++, PHP, Java, C #, e mais com Doxygen (se você tiver Graphviz dot instalado). Aqui está uma página com uma árvore chamada amostra gerada pelo Doxygen / cs.

Doxygen funciona em Windows bem, e pode HTML de saída e alguns outros formatos .

Outras dicas

Ferramentas que lêem fonte, mas não entendem a linguagem de programação em um sentido semântico profunda só pode dar-lhe uma aproximação do gráfico de chamadas. (O que se uma chamada ocorre em uma macro? E se essa chamada ocorre dentro de uma condicional pré-processador desativado? E se a chamada é indireta?) Se isso é bom o suficiente, e você realmente não me importo de saber sobre o que chamadas indiretas fazer, então ferramentas como Doxygen e cscope irá provavelmente ser útil.

Se você quiser um gráfico de chamadas precisa, você precisa de uma ferramenta constrói um usando pleno conhecimento do langauge. Frama-C (ver outra resposta) AFAIK é um, embora eu não sei como ele lida com macros e chamadas indiretas.

Não é grátis, mas o DMS Software Reengineering Toolkit e seu fim C frente têm full C macro / pré-processador capacidade de processamento e construções chamar gráficos para um sistema de arquivos. Ele inclui especificamente um ponto-a análise na sua construção gráfico de chamadas para lhe dar uma aproximação conservadora de onde as chamadas de função indiretas ir. Consulte exemplo gráfico de chamadas com arcos negros (chamadas diretas) e arcos azuis (conservadoramente Analisamos) chamadas indiretas.

Muitas ferramentas de produzir este tipo de call-graph. Doxygen pode muito bem ter mais opções de apresentação para os resultados, sendo uma "programação alfabetizada" ferramenta em seu núcleo. A ferramenta de código aberto em http://frama-c.cea.fr/ produz call-gráficos (também no formato de ponto) e tenta agrupar as funções por "serviços" automaticamente: http : //img23.yfrog.com/img23/8180/9il.png

CodeInsight é um editor comercial que tem a funcionalidade de CTags / cscope rolou em. Ele pode exibir gráficos da árvore chamada (e praticamente qualquer outra relação) também.

Fonte Navigator parece estar em desenvolvimento novamente (última versão do SourceNav NG foi em fevereiro deste ano). Fonte Navigator pode dar-lhe chamar árvores, dependências de classe, etc, etc. Eu não tentei as versões recentes. Funciona em Windows ou X11.

http://sourcenav.berlios.de/

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