summaryrefslogtreecommitdiff
path: root/gnu/usr.bin/binutils/gprof/fsf_callg_bl.c
blob: d8182b551b0dee0cb1d7f5183e5c7f7051192c36 (plain)
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
/* ==> Do not modify this file!!  It is created automatically
   from fsf_callg_bl.m using the gen-c-prog.awk script.  <== */

#include <stdio.h>

void
fsf_callg_blurb (file)
     FILE *file;
{
  fputs ("\n", file);
  fputs (" This table describes the call tree of the program, and was sorted by\n", file);
  fputs (" the total amount of time spent in each function and its children.\n", file);
  fputs ("\n", file);
  fputs (" Each entry in this table consists of several lines.  The line with the\n", file);
  fputs (" index number at the left hand margin lists the current function.\n", file);
  fputs (" The lines above it list the functions that called this function,\n", file);
  fputs (" and the lines below it list the functions this one called.\n", file);
  fputs (" This line lists:\n", file);
  fputs ("     index	A unique number given to each element of the table.\n", file);
  fputs ("		Index numbers are sorted numerically.\n", file);
  fputs ("		The index number is printed next to every function name so\n", file);
  fputs ("		it is easier to look up where the function in the table.\n", file);
  fputs ("\n", file);
  fputs ("     % time	This is the percentage of the `total' time that was spent\n", file);
  fputs ("		in this function and its children.  Note that due to\n", file);
  fputs ("		different viewpoints, functions excluded by options, etc,\n", file);
  fputs ("		these numbers will NOT add up to 100%.\n", file);
  fputs ("\n", file);
  fputs ("     self	This is the total amount of time spent in this function.\n", file);
  fputs ("\n", file);
  fputs ("     children	This is the total amount of time propagated into this\n", file);
  fputs ("		function by its children.\n", file);
  fputs ("\n", file);
  fputs ("     called	This is the number of times the function was called.\n", file);
  fputs ("		If the function called itself recursively, the number\n", file);
  fputs ("		only includes non-recursive calls, and is followed by\n", file);
  fputs ("		a `+' and the number of recursive calls.\n", file);
  fputs ("\n", file);
  fputs ("     name	The name of the current function.  The index number is\n", file);
  fputs ("		printed after it.  If the function is a member of a\n", file);
  fputs ("		cycle, the cycle number is printed between the\n", file);
  fputs ("		function's name and the index number.\n", file);
  fputs ("\n", file);
  fputs ("\n", file);
  fputs (" For the function's parents, the fields have the following meanings:\n", file);
  fputs ("\n", file);
  fputs ("     self	This is the amount of time that was propagated directly\n", file);
  fputs ("		from the function into this parent.\n", file);
  fputs ("\n", file);
  fputs ("     children	This is the amount of time that was propagated from\n", file);
  fputs ("		the function's children into this parent.\n", file);
  fputs ("\n", file);
  fputs ("     called	This is the number of times this parent called the\n", file);
  fputs ("		function `/' the total number of times the function\n", file);
  fputs ("		was called.  Recursive calls to the function are not\n", file);
  fputs ("		included in the number after the `/'.\n", file);
  fputs ("\n", file);
  fputs ("     name	This is the name of the parent.  The parent's index\n", file);
  fputs ("		number is printed after it.  If the parent is a\n", file);
  fputs ("		member of a cycle, the cycle number is printed between\n", file);
  fputs ("		the name and the index number.\n", file);
  fputs ("\n", file);
  fputs (" If the parents of the function cannot be determined, the word\n", file);
  fputs (" `<spontaneous>' is printed in the `name' field, and all the other\n", file);
  fputs (" fields are blank.\n", file);
  fputs ("\n", file);
  fputs (" For the function's children, the fields have the following meanings:\n", file);
  fputs ("\n", file);
  fputs ("     self	This is the amount of time that was propagated directly\n", file);
  fputs ("		from the child into the function.\n", file);
  fputs ("\n", file);
  fputs ("     children	This is the amount of time that was propagated from the\n", file);
  fputs ("		child's children to the function.\n", file);
  fputs ("\n", file);
  fputs ("     called	This is the number of times the function called\n", file);
  fputs ("		this child `/' the total number of times the child\n", file);
  fputs ("		was called.  Recursive calls by the child are not\n", file);
  fputs ("		listed in the number after the `/'.\n", file);
  fputs ("\n", file);
  fputs ("     name	This is the name of the child.  The child's index\n", file);
  fputs ("		number is printed after it.  If the child is a\n", file);
  fputs ("		member of a cycle, the cycle number is printed\n", file);
  fputs ("		between the name and the index number.\n", file);
  fputs ("\n", file);
  fputs (" If there are any cycles (circles) in the call graph, there is an\n", file);
  fputs (" entry for the cycle-as-a-whole.  This entry shows who called the\n", file);
  fputs (" cycle (as parents) and the members of the cycle (as children.)\n", file);
  fputs (" The `+' recursive calls entry shows the number of function calls that\n", file);
  fputs (" were internal to the cycle, and the calls entry for each member shows,\n", file);
  fputs (" for that member, how many times it was called from other members of\n", file);
  fputs (" the cycle.\n", file);
  fputs ("\n", file);
}