2011-10-26 17 views
8

Quiero generar un Gráfico de dependencia de programa (PDG) del código fuente C. Encontré documentos que explican cómo hacerlo, pero todos usaban la herramienta comercial CodeSurfer.¿Cómo generar un gráfico de dependencia de programa para el programa C?

¿Hay alguna herramienta gratuita que haga esto?

+0

Si desea calcular un PDG para un programa C, ¿por qué etiqueta su pregunta 'C++'? Es significativamente más difícil analizar programas C++ a la misma profundidad en la que se pueden analizar los programas C. –

+0

Hola, ¿lograste encontrar un "generador" PDG decente? El PDG generado por Frama-c produce un gráfico muy extraño ... – JohnTortugo

Respuesta

0

Doxygen puede generar llamador de función y gráficos de llamada, así como todas las funciones utilizadas en su programa. Puede que esto no sea exactamente lo que está buscando, pero podría proporcionar algunos datos útiles.

SourceMonitor es una herramienta de métricas que puede mostrar la complejidad de funciones y programas, así como los diagramas de complejidad.

Ambas herramientas son gratuitas.

+1

Un "Gráfico de dependencia del programa" es un gráfico cuyos nodos son enunciados y cuyos bordes representan dependencias. No es un gráfico de llamadas (cuyos nodos son funciones). Puede ver un ejemplo de PDG aquí, pero cuando se trata de un lenguaje de programación real, especialmente C, el diablo está en los detalles, y se muestra en la representación. http://lists.gforge.inria.fr/pipermail/frama-c-discuss/attachments/20100210/87fe9543/attachment-0001.png –

7

Frama-C es un marco de análisis estático de código abierto que puede calcular un sonido Gráfico de dependencia de programa para programas C. Es slicing plug-in utiliza el PDG resultante. El corte y el cálculo PDG se discutieron en February 2010 en la lista de correo (mensajes de jung, myung-jin y sus respuestas).

También puede consultar Unravel de NIST o Aristotle de Georgia Tech. Tanto Valsoft en la Universidad de Karlsruhe, como Loyola Surgeon's Assistant, también valdría la pena investigar.

Cuestiones relacionadas