Browse Source
previously deleted make-c-prog.awk. Converts a text file to a c function that prints that text. * flat_bl.m, fsf_callg_bl.m, bsd_callg_bl.m: New files. Inputs to gen-c-prog.awk, containing text describing gprof output. * blurbs.c: Removed. Use *_bl.c instead. * Makefile.in: Use gen-cprog.awk to generate *_bl.c files from *_bl.m files. Also, improve *clean rules. * printgprof.c (printgprof): Usw new function names from *_bl.c.gdb-4_18-branch
8 changed files with 293 additions and 9 deletions
@ -0,0 +1,108 @@ |
|||
|
|||
|
|||
|
|||
call graph profile: |
|||
The sum of self and descendents is the major sort |
|||
for this listing. |
|||
|
|||
function entries: |
|||
|
|||
index the index of the function in the call graph |
|||
listing, as an aid to locating it (see below). |
|||
|
|||
%time the percentage of the total time of the program |
|||
accounted for by this function and its |
|||
descendents. |
|||
|
|||
self the number of seconds spent in this function |
|||
itself. |
|||
|
|||
descendents |
|||
the number of seconds spent in the descendents of |
|||
this function on behalf of this function. |
|||
|
|||
called the number of times this function is called (other |
|||
than recursive calls). |
|||
|
|||
self the number of times this function calls itself |
|||
recursively. |
|||
|
|||
name the name of the function, with an indication of |
|||
its membership in a cycle, if any. |
|||
|
|||
index the index of the function in the call graph |
|||
listing, as an aid to locating it. |
|||
|
|||
|
|||
|
|||
parent listings: |
|||
|
|||
self* the number of seconds of this function's self time |
|||
which is due to calls from this parent. |
|||
|
|||
descendents* |
|||
the number of seconds of this function's |
|||
descendent time which is due to calls from this |
|||
parent. |
|||
|
|||
called** the number of times this function is called by |
|||
this parent. This is the numerator of the |
|||
fraction which divides up the function's time to |
|||
its parents. |
|||
|
|||
total* the number of times this function was called by |
|||
all of its parents. This is the denominator of |
|||
the propagation fraction. |
|||
|
|||
parents the name of this parent, with an indication of the |
|||
parent's membership in a cycle, if any. |
|||
|
|||
index the index of this parent in the call graph |
|||
listing, as an aid in locating it. |
|||
|
|||
|
|||
|
|||
children listings: |
|||
|
|||
self* the number of seconds of this child's self time |
|||
which is due to being called by this function. |
|||
|
|||
descendent* |
|||
the number of seconds of this child's descendent's |
|||
time which is due to being called by this |
|||
function. |
|||
|
|||
called** the number of times this child is called by this |
|||
function. This is the numerator of the |
|||
propagation fraction for this child. |
|||
|
|||
total* the number of times this child is called by all |
|||
functions. This is the denominator of the |
|||
propagation fraction. |
|||
|
|||
children the name of this child, and an indication of its |
|||
membership in a cycle, if any. |
|||
|
|||
index the index of this child in the call graph listing, |
|||
as an aid to locating it. |
|||
|
|||
|
|||
|
|||
* these fields are omitted for parents (or |
|||
children) in the same cycle as the function. If |
|||
the function (or child) is a member of a cycle, |
|||
the propagated times and propagation denominator |
|||
represent the self time and descendent time of the |
|||
cycle as a whole. |
|||
|
|||
** static-only parents and children are indicated |
|||
by a call count of 0. |
|||
|
|||
|
|||
|
|||
cycle listings: |
|||
the cycle as a whole is listed with the same |
|||
fields as a function entry. Below it are listed |
|||
the members of the cycle, and their contributions |
|||
to the time and call counts of the cycle. |
|||
|
|||
@ -0,0 +1,28 @@ |
|||
|
|||
% the percentage of the total running time of the |
|||
time program used by this function. |
|||
|
|||
cumulative a running sum of the number of seconds accounted |
|||
seconds for by this function and those listed above it. |
|||
|
|||
self the number of seconds accounted for by this |
|||
seconds function alone. This is the major sort for this |
|||
listing. |
|||
|
|||
calls the number of times this function was invoked, if |
|||
this function is profiled, else blank. |
|||
|
|||
self the average number of milliseconds spent in this |
|||
ms/call function per call, if this function is profiled, |
|||
else blank. |
|||
|
|||
total the average number of milliseconds spent in this |
|||
ms/call function and its descendents per call, if this |
|||
function is profiled, else blank. |
|||
|
|||
name the name of the function. This is the minor sort |
|||
for this listing. The index shows the location of |
|||
the function in the gprof listing. If the index is |
|||
in parenthesis it shows where it would appear in |
|||
the gprof listing if it were to be printed. |
|||
|
|||
@ -0,0 +1,83 @@ |
|||
|
|||
This table describes the call tree of the program, and was sorted by |
|||
the total amount of time spent in each function and its children. |
|||
|
|||
Each entry in this table consists of several lines. The line with the |
|||
index number at the left hand margin lists the current function. |
|||
The lines above it list the functions that called this function, |
|||
and the lines below it list the functions this one called. |
|||
This line lists: |
|||
index A unique number given to each element of the table. |
|||
Index numbers are sorted numerically. |
|||
The index number is printed next to every function name so |
|||
it is easier to look up where the function in the table. |
|||
|
|||
% time This is the percentage of the `total' time that was spent |
|||
in this function and its children. Note that due to |
|||
different viewpoints, functions excluded by options, etc, |
|||
these numbers will NOT add up to 100%. |
|||
|
|||
self This is the total amount of time spent in this function. |
|||
|
|||
children This is the total amount of time propagated into this |
|||
function by its children. |
|||
|
|||
called This is the number of times the function was called. |
|||
If the function called itself recursively, the number |
|||
only includes non-recursive calls, and is followed by |
|||
a `+' and the number of recursive calls. |
|||
|
|||
name The name of the current function. The index number is |
|||
printed after it. If the function is a member of a |
|||
cycle, the cycle number is printed between the |
|||
function's name and the index number. |
|||
|
|||
|
|||
For the function's parents, the fields have the following meanings: |
|||
|
|||
self This is the amount of time that was propagated directly |
|||
from the function into this parent. |
|||
|
|||
children This is the amount of time that was propagated from |
|||
the function's children into this parent. |
|||
|
|||
called This is the number of times this parent called the |
|||
function `/' the total number of times the function |
|||
was called. Recursive calls to the function are not |
|||
included in the number after the `/'. |
|||
|
|||
name This is the name of the parent. The parent's index |
|||
number is printed after it. If the parent is a |
|||
member of a cycle, the cycle number is printed between |
|||
the name and the index number. |
|||
|
|||
If the parents of the function cannot be determined, the word |
|||
`<spontaneous>' is printed in the `name' field, and all the other |
|||
fields are blank. |
|||
|
|||
For the function's children, the fields have the following meanings: |
|||
|
|||
self This is the amount of time that was propagated directly |
|||
from the child into the function. |
|||
|
|||
children This is the amount of time that was propagated from the |
|||
child's children to the function. |
|||
|
|||
called This is the number of times the function called |
|||
this child `/' the total number of times the child |
|||
was called. Recursive calls by the child are not |
|||
listed in the number after the `/'. |
|||
|
|||
name This is the name of the child. The child's index |
|||
number is printed after it. If the child is a |
|||
member of a cycle, the cycle number is printed |
|||
between the name and the index number. |
|||
|
|||
If there are any cycles (circles) in the call graph, there is an |
|||
entry for the cycle-as-a-whole. This entry shows who called the |
|||
cycle (as parents) and the members of the cycle (as children.) |
|||
The `+' recursive calls entry shows the number of function calls that |
|||
were internal to the cycle, and the calls entry for each member shows, |
|||
for that member, how many times it was called from other members of |
|||
the cycle. |
|||
|
|||
@ -0,0 +1,26 @@ |
|||
NR == 1 { |
|||
FS="\""; |
|||
print "/* ==> Do not modify this file!! It is created automatically" |
|||
printf " from %s using the make-c-prog.awk script. <== */\n\n", FILE |
|||
print "#include <stdio.h>" |
|||
} |
|||
|
|||
{ |
|||
if (curfun != FUNCTION) |
|||
{ |
|||
if (curfun) |
|||
print "}" |
|||
curfun = FUNCTION |
|||
print "" |
|||
print "void"; |
|||
printf "%s (file)\n", FUNCTION |
|||
print " FILE *file;"; |
|||
print "{"; |
|||
} |
|||
printf " fputs (\""; |
|||
for (i = 1; i < NF; i++) |
|||
printf "%s\\\"", $i; |
|||
printf "%s\\n\", file);\n", $NF; |
|||
} |
|||
|
|||
END { print "}" } |
|||
Loading…
Reference in new issue