* core.c (core_sym_class): Ignore symbols without BSF_FUNCTION
set if ignore_non_function is set. * gprof.h (ignore_non_functions): Declare. * gprof.c (ignore_non_functions): Define. (long_options): Add "ignore-non-functions". (usage): Add new options. (main): Recognize "-D" and "--ignore-non-functions" option. So we can get more accurate information on Solaris, HPUX and other systems that can uniquely identify function symbols.
This commit is contained in:
parent
7920c1d195
commit
32843f948c
5 changed files with 32 additions and 3 deletions
|
@ -1,3 +1,13 @@
|
|||
Sun Dec 24 21:32:27 1995 Jeffrey A Law (law@cygnus.com)
|
||||
|
||||
* core.c (core_sym_class): Ignore symbols without BSF_FUNCTION
|
||||
set if ignore_non_function is set.
|
||||
* gprof.h (ignore_non_functions): Declare.
|
||||
* gprof.c (ignore_non_functions): Define.
|
||||
(long_options): Add "ignore-non-functions".
|
||||
(usage): Add new options.
|
||||
(main): Recognize "-D" and "--ignore-non-functions" option.
|
||||
|
||||
Tue Nov 21 13:24:39 1995 Ken Raeburn <raeburn@cygnus.com>
|
||||
|
||||
* Makefile.in (.m.c): Strip out directory name from function
|
||||
|
|
|
@ -179,6 +179,12 @@ DEFUN (core_sym_class, (sym), asymbol * sym)
|
|||
{
|
||||
return 0;
|
||||
}
|
||||
|
||||
/* If the object file supports marking of function symbols, then we can
|
||||
zap anything that doesn't have BSF_FUNCTION set. */
|
||||
if (ignore_non_functions && (sym->flags & BSF_FUNCTION) == 0)
|
||||
return 0;
|
||||
|
||||
return 't'; /* it's a static text symbol */
|
||||
}
|
||||
|
||||
|
|
|
@ -50,6 +50,7 @@ bool ignore_zeros = TRUE;
|
|||
bool line_granularity = FALSE;
|
||||
bool print_descriptions = TRUE;
|
||||
bool print_path = FALSE;
|
||||
bool ignore_non_functions = FALSE;
|
||||
File_Format file_format = FF_AUTO;
|
||||
|
||||
bool first_output = TRUE;
|
||||
|
@ -76,6 +77,7 @@ static struct option long_options[] =
|
|||
{
|
||||
{"line", no_argument, 0, 'l'},
|
||||
{"no-static", no_argument, 0, 'a'},
|
||||
{"ignore-non-functions", no_argument, 0, 'D'},
|
||||
|
||||
/* output styles: */
|
||||
|
||||
|
@ -129,7 +131,7 @@ static void
|
|||
DEFUN (usage, (stream, status), FILE * stream AND int status)
|
||||
{
|
||||
fprintf (stream, "\
|
||||
Usage: %s [-[abchilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n\
|
||||
Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n\
|
||||
[-d[num]] [-k from/to] [-m min-count] [-t table-length]\n\
|
||||
[--[no-]annotated-source[=name]] [--[no-]exec-counts[=name]]\n\
|
||||
[--[no-]flat-profile[=name]] [--[no-]graph[=name]]\n\
|
||||
|
@ -138,7 +140,7 @@ Usage: %s [-[abchilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n\
|
|||
[--file-format=name] [--file-info] [--help] [--line] [--min-count=n]\n\
|
||||
[--no-static] [--print-path] [--separate-files]\n\
|
||||
[--static-call-graph] [--sum] [--table-length=len] [--traditional]\n\
|
||||
[--version] [--width=n]\n\
|
||||
[--version] [--width=n] [--ignore-non-functions]\n\
|
||||
[image-file] [profile-file...]\n",
|
||||
whoami);
|
||||
done (status);
|
||||
|
@ -156,7 +158,7 @@ DEFUN (main, (argc, argv), int argc AND char **argv)
|
|||
xmalloc_set_program_name (whoami);
|
||||
|
||||
while ((ch = getopt_long (argc, argv,
|
||||
"aA::bBcCd::e:E:f:F:hiI:J::k:lLm:n::N::O:p::P::q::Q::st:Tvw:xyzZ::",
|
||||
"aA::bBcCdD::e:E:f:F:hiI:J::k:lLm:n::N::O:p::P::q::Q::st:Tvw:xyzZ::",
|
||||
long_options, 0))
|
||||
!= EOF)
|
||||
{
|
||||
|
@ -206,6 +208,9 @@ DEFUN (main, (argc, argv), int argc AND char **argv)
|
|||
printf ("%s: debugging not supported; -d ignored\n", whoami);
|
||||
#endif /* DEBUG */
|
||||
break;
|
||||
case 'D':
|
||||
ignore_non_functions = TRUE;
|
||||
break;
|
||||
case 'E':
|
||||
sym_id_add (optarg, EXCL_TIME);
|
||||
case 'e':
|
||||
|
|
|
@ -128,6 +128,8 @@ extern bool ignore_zeros; /* ignore unused symbols/files */
|
|||
extern bool line_granularity; /* function or line granularity? */
|
||||
extern bool print_descriptions; /* output profile description */
|
||||
extern bool print_path; /* print path or just filename? */
|
||||
extern bool ignore_non_functions;/* Ignore non-function symbols. */
|
||||
|
||||
extern File_Format file_format; /* requested file format */
|
||||
|
||||
extern bool first_output; /* no output so far? */
|
||||
|
|
|
@ -294,6 +294,12 @@ function that was loaded directly before it in the executable file.
|
|||
@c This is compatible with Unix @code{gprof}, but a bad idea.
|
||||
This option affects both the flat profile and the call graph.
|
||||
|
||||
@item -D
|
||||
The @samp{-D} option causes @code{gprof} to ignore symbols which
|
||||
are not known to be functions. This option will give more accurate
|
||||
profile data on systems where it is supported (Solaris and HPUX for
|
||||
example).
|
||||
|
||||
@item -e @var{function_name}
|
||||
The @samp{-e @var{function}} option tells @code{gprof} to not print
|
||||
information about the function @var{function_name} (and its
|
||||
|
|
Loading…
Reference in a new issue