Bonjour,
est-ce qu'il existe des analyseurs de code (libres ou non) pour des projets dans lesquels les interfaces sont mal définies ?
Par mal définies, je veux dire qu'il y aurait par exemple beaucoup de variables importées dans chaque fichier, des variables modifiées dans plusieurs fichiers, des fonctions du fichier 1 qui appellent des fonctions du fichier 2 qui rappellent elles-mêmes des fonctions du fichier 1, etc.
Le programme en question permettrait aussi d'établir les dépendances entre les fichiers, pour déterminer facilement quels sont les fonctionnalités à contrôler lorsqu'un fichier évolue.
J'imagine que ce genre de chose existe, non ?
Ennio
# [reponse] / doxygen
Posté par daggett . Évalué à 2.
Je l'avais vu un jour où j'avais besoin d'avoir une vue d'ensemble des références croisées pour éditer un projet existant.
J'ai finalement utilisé doxygen, qui si on le configure bien peut dire pour chaque fichier source, quels fichiers (.h) il utilise, et pour chaque .h, quels .c l'utilisent. De même, on a les dépendances des fonctions dans les deux sens, ainsi que des variables (globales).
Les dépendances sont disponibles sous forme de liste de texte, et de graphiques.
Par contre pour de tres gros projets, il semblerait que doxygen n'arrive pas à tout gérer, et certaines dépendances ne sont pas enregistrées...
Comme j'ai un peu galéré avant d'avoir l'ensemble de ces infos, pour info, voila le doxygen.cfg que j'ai utilisé pour analyser le projet:
=============
# Doxyfile 1.4.1 -*-sh-*-
PROJECT_NAME= le_nom_du_projet
CREATE_SUBDIRS=NO
OUTPUT_DIRECTORY = proj_doxygenifié
ALWAYS_DETAILED_SEC=YES
OPTIMIZE_OUTPUT_FOR_C=YES
EXTRACT_ALL=YES
EXTRACT_PRIVATE=YES
EXTRACT_STATIC=YES
EXTRACT_LOCAL_METHODS=YES
WARN_IF_UNDOCUMENTED=NO
WARN_IF_DOC_ERROR=NO
WARN_LOGFILE=doxywarn.log
INPUT=project_src_dir
FILE_PATTERNS=*.c *.h
RECURSIVE=YES
ENABLE_PREPROCESSING = YES
INCLUDE_GRAPH = YES
INCLUDED_BY_GRAPH = YES
SOURCE_BROWSER=YES
INLINE_SOURCES=YES
STRIP_CODE_COMMENTS=NO
ALPHABETICAL_INDEX=YES
GENERATE_TREEVIEW=YES
PDF_HYPERLINKS=NO
USE_PDFLATEX=NO
LATEX_BATCHMODE=NO
GENERATE_MAN=NO
MAN_LINKS=NO
GENERATE_XML=NO
GENERATE_LATEX=NO
CLASS_DIAGRAMS=NO
HAVE_DOT=YES
CLASS_GRAPH=NO
COLLABORATION_GRAPH=YES
GROUP_GRAPHS=NO
CALL_GRAPH=YES
GRAPHICAL_HIERARCHY=YES
DOT_MULTI_TARGETS=YES
=========
[^] # Re: [reponse] / doxygen
Posté par Ennio . Évalué à 1.
Suivre le flux des commentaires
Note : les commentaires appartiennent à celles et ceux qui les ont postés. Nous n’en sommes pas responsables.