Soy principalmente un programador de C y C++ y a menudo necesito comprender rápidamente la estructura de bases de código muy grandes (gcc, kernel de Linux). Me pregunto si hay alguna herramienta para ayudar en este sentido. Estoy particularmente interesado en gráficos de llamadas, referencias de estructura de datos en todo el proyecto, gráficos de dependencia, ubicación rápida de símbolos, etc. Conozco ctags y cscope, pero estoy buscando algo con más visualización, como un gráfico de llamadas que permite ubicar rápidamente la definición de una función, arraigue el gráfico en una llamada particular, invirtiéndola (es decir, ubicando todas las llamadas a una función dada), etc.Herramientas de exploración, comprensión y lectura de código fuente
Respuesta
Por favor intente y use SourceInsight. Es bastante útil para navegar por el código y entenderlo. Proporciona la mayoría de las funciones solicitadas por usted.
Si desea construir gráficos de llamadas, puede enrollar el suyo con el -finstrument-functions
de GCC.
Básicamente, cuando se compila un programa con esta opción activada, GCC llama a las siguientes funciones cada vez que el programa de destino entra o sale de una función:
void __cyg_profile_func_enter (void *this_fn,
void *call_site);
void __cyg_profile_func_exit (void *this_fn,
void *call_site);
Lo que hay que hacer es definir estas funciones, y escribir en tu lógica para producir el gráfico de llamadas allí.
This extremely thorough tutorial explica cómo se puede producir un gráfico de llamadas usando -finstrument-functions
y GraphViz. Todas las herramientas involucradas son FOSS y gratis.
Por supuesto:
- Los gráficos GraphViz produce son independientes, y no parte de un IDE.
- No estoy seguro de si la producción de un gráfico de llamadas de Linux (kernel) es posible de esta manera.
Puede probar cflow. Te da un graf de las llamadas de funciones dentro. Aunque no es muy flexible.
- 1. ¿Cómo mejorar su lectura y comprensión del código?
- 2. Código de lectura: visualizadores útiles y herramientas del navegador
- 3. ¿Cómo puedo hacer mejor la exploración de código fuente dentro de Emacs?
- 4. Exploración de tablas y exploración de índice en SQL
- 5. de código abierto C++ exploración de la biblioteca
- 6. ¿Cómo abordar los problemas de exploración de código python y de finalización de código en vim?
- 7. ¿Existen herramientas de combinación para el control de código fuente que entienden el código?
- 8. comprensión Código Contrato de error
- 9. comprensión del código hash
- 10. Comprensión del código
- 11. Herramientas de análisis de código estático
- 12. fuente de información sobre herramientas en wpf
- 13. Buscador de código de Google como indexador y visualizador de código fuente
- 14. Comprensión de listas y dict combinados
- 15. Visualización de código fuente C/C++?
- 16. herramientas de análisis y visualización de código MATLAB?
- 17. Herramientas de análisis de código y declaraciones entre tipos
- 18. Herramientas de cobertura de código para Symbian C++ y Maemo
- 19. Comprender el código fuente de jquery
- 20. ¿Cómo se puede usar el Kindle como una herramienta de lectura de código fuente?
- 21. lista.extend y comprensión de lista
- 22. Comprensión de byref, ref y &
- 23. Código de búsqueda TFS 2010 y VS 2010 en control de código fuente
- 24. Lectura del código fuente de Python para mejorar las habilidades de programación
- 25. C#: lectura de código fuente HTML de una página web en una cadena
- 26. Agregar imágenes al código fuente
- 27. Herramientas de cobertura de código para Scala
- 28. Herramientas de análisis de código C++
- 29. Comentando código C, encabezado y archivos fuente
- 30. Clases .NET y su código fuente
RTCM - lea el manual del compilador. La mayoría de los compiladores hacen algo de lo que quieres y espero que los compiladores que uses no sean una excepción. –