bonjour,
Existe t-il un logiciel qui permet de dessiner l'arbre de la structure chainée des appels d'un projet C (le top serait aussi qu'il puisse m'indiquer consommation mémoire que prend chaque fonction dans la taille de la pile) ?
Version imprimable
bonjour,
Existe t-il un logiciel qui permet de dessiner l'arbre de la structure chainée des appels d'un projet C (le top serait aussi qu'il puisse m'indiquer consommation mémoire que prend chaque fonction dans la taille de la pile) ?
Bonjour,
Doxygen permet de faire des graphes d'appel :
http://www-scf.usc.edu/~peterchd/doxygen/.
merci mais je n'arrive pas à l'utiliser => ça me liste juste certains de mes .h que j'ai dans mon projet : il faut faire quoi exactement ?
voici sur quel genre de projet j'essaie de faire fonctionner Doxygen :
http://www.microchip.com/stellent/id...pnote=en012117
Alors, il faut jouer un peu avec la configuration de doxygen et avoir graphviz installé sur sa machine.
Configuration :
le minimum est (dans le fichier Doxyfile) :
EXTRACT_ALL = YES
HAVE_DOT = YES
CALL_GRAPH = YES
OPTIMIZE_OUTPUT_FOR_C = YES
graphviz peut être trouvé sur ce site.
EDIT:
Doxygen peut être capricieux, il ne faut pas hésiter à supprimer le dossier html en cas d'erreur de génération de call graph.
il y a du mieux mais ce n'est pas encore ça => j'ai le resumé des mes fonctions, structures, ... mais je n'ai toujours pas le graph : il doit bien s'afficher sur la page HTML ?
1- j'ai installé Doxygen
2- J'ai installé Graphviz
3- j'ai créer un nouveau projet sous DOxygen (en utilisant le wizard) puis j'ai modifié le fichier Doxyfile
4- j'ai lancer le wizard
j'ai des erreurs pendant le lancement de Doxygen :
CI-joint, mon fichier Doxyfile...Code:
1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117 Searching for include files... Searching for example files... Searching for images... Searching for dot files... Searching for files to exclude Searching for files to process... Searching for files in directory C:/an878 Reading and parsing tag files Preprocessing C:/an878/ECAN.c... Parsing file C:/an878/ECAN.c... Preprocessing C:/an878/ECAN.h... Parsing file C:/an878/ECAN.h... Preprocessing C:/an878/ECANDemo.c... Parsing file C:/an878/ECANDemo.c... Building group list... Building directory list... Building namespace list... Building file list... Building class list... Associating documentation with classes... Computing nesting relations for classes... Building example list... Searching for enumerations... Searching for documented typedefs... Searching for members imported via using declarations... Searching for included using directives... Searching for documented variables... Building member list... Searching for friends... Searching for documented defines... Computing class inheritance relations... Computing class usage relations... Flushing cached template relations that have become invalid... Creating members for template instances... Computing class relations... Add enum values to enums... Searching for member function documentation... Building page list... Search for main page... Computing page relations... Determining the scope of groups... Sorting lists... Freeing entry tree Determining which enums are documented Computing member relations... Building full member lists recursively... Adding members to member groups. Computing member references... Inheriting documentation... Generating disk names... Adding source references... Adding todo/test/bug list items... Counting data structures... Resolving user defined references... Finding anchors and sections in the documentation... Combining using relations... Adding members to index pages... Generating style sheet... Generating index page... Generating page index... Generating example documentation... Generating file sources... Parsing code for file C:/an878/ECAN.c... Generating code for file C:/an878/ECAN.h... Parsing code for file C:/an878/ECANDemo.c... Generating file documentation... Generating docs for file C:/an878/ECAN.c... Generating call graph for function ECANInitialize Generating call graph for function ECANReceiveMessage Generating call graph for function ECANSendMessage Generating docs for file C:/an878/ECAN.h... Generating call graph for function ECANInitialize Generating call graph for function ECANReceiveMessage Generating call graph for function ECANSendMessage Generating docs for file C:/an878/ECANDemo.c... Generating call graph for function main Generating page documentation... Generating group documentation... Generating group index... Generating class documentation... Generating annotated compound index... Generating alphabetical compound index... Generating hierarchical class index... Generating member index... Generating docs for compound _BYTE_VAL... Generating docs for compound _CAN_MESSAGE_ID... Generating graphical class hierarchy... Generating namespace index... Generating namespace member index... Generating graph info page... Generating file index... Generating example index... Generating file member index... Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8c__incl.dot" -Tpng -o "_e_c_a_n_8c__incl.png"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8c__incl.dot" -Tps -o "_e_c_a_n_8c__incl.eps"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8c_b086cfb517b43ddedf1cfa642d605088_cgraph.dot" -Tpng -o "_e_c_a_n_8c_b086cfb517b43ddedf1cfa642d605088_cgraph.png"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8c_b086cfb517b43ddedf1cfa642d605088_cgraph.dot" -Tps -o "_e_c_a_n_8c_b086cfb517b43ddedf1cfa642d605088_cgraph.eps"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8c_ed0ebbd050e32d40289d3a9f8b20c515_cgraph.dot" -Tpng -o "_e_c_a_n_8c_ed0ebbd050e32d40289d3a9f8b20c515_cgraph.png"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8c_ed0ebbd050e32d40289d3a9f8b20c515_cgraph.dot" -Tps -o "_e_c_a_n_8c_ed0ebbd050e32d40289d3a9f8b20c515_cgraph.eps"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8c_6b0d1787e0e0405f1e5a4fa2adaa091f_cgraph.dot" -Tpng -o "_e_c_a_n_8c_6b0d1787e0e0405f1e5a4fa2adaa091f_cgraph.png"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8c_6b0d1787e0e0405f1e5a4fa2adaa091f_cgraph.dot" -Tps -o "_e_c_a_n_8c_6b0d1787e0e0405f1e5a4fa2adaa091f_cgraph.eps"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8h__incl.dot" -Tpng -o "_e_c_a_n_8h__incl.png"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8h__incl.dot" -Tps -o "_e_c_a_n_8h__incl.eps"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8h__dep__incl.dot" -Tpng -o "_e_c_a_n_8h__dep__incl.png"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8h__dep__incl.dot" -Tps -o "_e_c_a_n_8h__dep__incl.eps"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8h_b086cfb517b43ddedf1cfa642d605088_cgraph.dot" -Tpng -o "_e_c_a_n_8h_b086cfb517b43ddedf1cfa642d605088_cgraph.png"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8h_b086cfb517b43ddedf1cfa642d605088_cgraph.dot" -Tps -o "_e_c_a_n_8h_b086cfb517b43ddedf1cfa642d605088_cgraph.eps"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8h_b54029f60bde1e5ed2000cb328613087_cgraph.dot" -Tpng -o "_e_c_a_n_8h_b54029f60bde1e5ed2000cb328613087_cgraph.png"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8h_b54029f60bde1e5ed2000cb328613087_cgraph.dot" -Tps -o "_e_c_a_n_8h_b54029f60bde1e5ed2000cb328613087_cgraph.eps"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8h_6b0d1787e0e0405f1e5a4fa2adaa091f_cgraph.dot" -Tpng -o "_e_c_a_n_8h_6b0d1787e0e0405f1e5a4fa2adaa091f_cgraph.png"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_8h_6b0d1787e0e0405f1e5a4fa2adaa091f_cgraph.dot" -Tps -o "_e_c_a_n_8h_6b0d1787e0e0405f1e5a4fa2adaa091f_cgraph.eps"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_demo_8c__incl.dot" -Tpng -o "_e_c_a_n_demo_8c__incl.png"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_demo_8c__incl.dot" -Tps -o "_e_c_a_n_demo_8c__incl.eps"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_demo_8c_6288eba0f8e8ad3ab1544ad731eb7667_cgraph.dot" -Tpng -o "_e_c_a_n_demo_8c_6288eba0f8e8ad3ab1544ad731eb7667_cgraph.png"' Problems running dot: exit code=-1, command='dot', arguments='"_e_c_a_n_demo_8c_6288eba0f8e8ad3ab1544ad731eb7667_cgraph.dot" -Tps -o "_e_c_a_n_demo_8c_6288eba0f8e8ad3ab1544ad731eb7667_cgraph.eps"' Problems running dot: exit code=-1, command='dot', arguments='"graph_legend.dot" -Tpng -o "graph_legend.png"' *** Doxygen has finished
Bonjour,
Le path est il correctement configuré pour graphviz ?
S'il ne l'est pas, on peut modifier cette ligne dans le Doxyfile :
Code:DOT_PATH = "C:\Program Files\Graphviz 2.21\bin"
c'etait le problème. merci beaucoup ;)