Básicamente, quiero herramientas que generen visualización de código fuente como:
Doxygen es realmente excelente para esto, aunque necesitará instalar GraphViz para dibujar los gráficos.
Una vez que tienes todo instalado, es bastante simple dibujar los gráficos. Asegúrate de establecer EXTRACT_ALL y CALL_GRAPH en verdadero y deberías estar listo para continuar.
La documentación completa sobre esta función para Doxygen está aquí .
Recomiendo BOUML . Es una aplicación de modelado UML gratuita, que:
Entonces: importe su código en BOUML y véalo allí, o exporte a SVG y visualícelo en Firefox.
Para la versión gratuita:
Puede ver diferentes herramientas para el diseño y modelado de software ( Rational Rose , Sparx Enterprise Architect , Umbrello , etc.). La mayoría de ellos tiene alguna funcionalidad para invertir el modelado por código fuente y obtener diagtwigs de clase UML, y en ocasiones incluso diagtwigs de secuencia (y esto está muy cerca de las funciones de gráfico de llamadas).
Pero después de obtener algunas imágenes en una base de código de proyecto realmente grande, puede darse cuenta de que estos gráficos son difíciles de leer y comprender. Desafortunadamente las capacidades de visualización de complejidad son muy limitadas.
En cuanto a mí, usar un modismo de “dividir y gobernar” es un enfoque más conveniente. Puede extraer diferentes bloques o capas de funcionalidad de su base de código (simplemente clasificando archivos cpp por carpetas diferentes a veces). Otra forma es usar algunos scripts (bash, python) para crear tablas csv simples con los parámetros interesados de los archivos, clases o funciones como “número de dependencias”, etc.
Prueba doxygen
Ejemplo de salida de Xerces
Si usa Visual Studio, la versión Ultimate 2010 le permite generar diagtwigs de secuencia y gráficos de dependencia. Sin embargo, el lanzamiento actualmente solo admite proyectos de aplicaciones .NET.
El equipo ha recibido mucho interés en apoyar C ++ en una versión futura, por lo que es posible que desee mantenerse atentos. Mientras tanto, puede publicar en el foro VS 2010 Architectural Discovery & Modeling Tools en http://social.msdn.microsoft.com/Forums/en-US/vsarch/threads para solicitar una actualización. Sé que al equipo del producto le encanta escuchar los comentarios de los clientes sobre las herramientas.
Mientras tanto, puede obtener más información sobre cómo crear diagtwigs de secuencia y diagtwigs de dependencia desde el código .NET en los siguientes temas:
Cómo buscar código usando Architecture Explorer : http://msdn.microsoft.com/en-us/library/dd409431%28VS.100%29.aspx
Cómo: generar documentos gráficos desde código : http://msdn.microsoft.com/en-us/library/dd409453%28VS.100%29.aspx#SeeSpecificSource
Cómo: Explorar código con diagtwigs de secuencia : http://msdn.microsoft.com/en-us/library/ee317485%28VS.100%29.aspx
Para probar el lanzamiento de RC y brindar comentarios, descárguelo en http://www.microsoft.com/downloads/details.aspx?displaylang=en&FamilyID=457bab91-5eb2-4b36-b0f4-d6f34683c62a.
Puede ser una duplicación, pero echa un vistazo a ollydbg, IDA Pro y este sitio web tiene un montón de recursos con algunas imágenes muy sexys.
Además de las herramientas escritas arriba, puedes intentar entender . Pero, no es gratis.
Hay una herramienta antigua llamada CDOC que todavía usamos para generar árboles de llamadas.