diff options
author | Nick Clifton <nickc@redhat.com> | 2000-07-20 18:02:56 +0000 |
---|---|---|
committer | Nick Clifton <nickc@redhat.com> | 2000-07-20 18:02:56 +0000 |
commit | 28c309a2879d8f66e75cd84b049ff49d508a36c6 (patch) | |
tree | f301b3cf30e87822c6fe0b712ea2b7aa51310903 /gprof | |
parent | 483f05e373e2ec8f9ff6a37f5c8d8deca3138ea3 (diff) | |
download | binutils-28c309a2879d8f66e75cd84b049ff49d508a36c6.tar.gz binutils-28c309a2879d8f66e75cd84b049ff49d508a36c6.tar.bz2 binutils-28c309a2879d8f66e75cd84b049ff49d508a36c6.zip |
Add optional style argument to --demangle switch.
Diffstat (limited to 'gprof')
-rw-r--r-- | gprof/ChangeLog | 5 | ||||
-rw-r--r-- | gprof/gprof.c | 20 | ||||
-rw-r--r-- | gprof/gprof.texi | 8 |
3 files changed, 28 insertions, 5 deletions
diff --git a/gprof/ChangeLog b/gprof/ChangeLog index 7b51f9c40af..43653e5c874 100644 --- a/gprof/ChangeLog +++ b/gprof/ChangeLog @@ -1,3 +1,8 @@ +2000-07-05 Kenneth Block <krblock@computer.org> + + * gprof/gprof.c: Add optional style to demangle switch + * gprof/gprof.texi: Document optional style to demangle switch. + 2000-06-05 DJ Delorie <dj@redhat.com> * MAINTAINERS: new diff --git a/gprof/gprof.c b/gprof/gprof.c index 5e47a97cbd6..2ceafd50f41 100644 --- a/gprof/gprof.c +++ b/gprof/gprof.c @@ -29,6 +29,7 @@ #include "hist.h" #include "source.h" #include "sym_ids.h" +#include "demangle.h" const char *whoami; const char *function_mapping_file; @@ -104,7 +105,7 @@ static struct option long_options[] = /* various options to affect output: */ {"all-lines", no_argument, 0, 'x'}, - {"demangle", no_argument, 0, OPTION_DEMANGLE}, + {"demangle", optional_argument, 0, OPTION_DEMANGLE}, {"no-demangle", no_argument, 0, OPTION_NO_DEMANGLE}, {"directory-path", required_argument, 0, 'I'}, {"display-unused-functions", no_argument, 0, 'z'}, @@ -153,7 +154,7 @@ Usage: %s [-[abcDhilLsTvwxyz]] [-[ACeEfFJnNOpPqQZ][name]] [-I dirs]\n\ [--no-static] [--print-path] [--separate-files]\n\ [--static-call-graph] [--sum] [--table-length=len] [--traditional]\n\ [--version] [--width=n] [--ignore-non-functions]\n\ - [--demangle] [--no-demangle]\n\ + [--demangle[=STYLE]] [--no-demangle]\n\ [image-file] [profile-file...]\n"), whoami); if (status == 0) @@ -425,6 +426,21 @@ This program is free software. This program has absolutely no warranty.\n")); break; case OPTION_DEMANGLE: demangle = TRUE; + if (optarg != NULL) + { + enum demangling_styles style; + + style = cplus_demangle_name_to_style (optarg); + if (style == unknown_demangling) + { + fprintf (stderr, + _("%s: unknown demangling style `%s'\n"), + whoami, optarg); + xexit (1); + } + + cplus_demangle_set_style (style); + } break; case OPTION_NO_DEMANGLE: demangle = FALSE; diff --git a/gprof/gprof.texi b/gprof/gprof.texi index 6e1cfd01990..4db07a149be 100644 --- a/gprof/gprof.texi +++ b/gprof/gprof.texi @@ -478,12 +478,14 @@ are annotated. If this option is specified, every line in a basic-block is annotated by repeating the annotation for the first line. This behavior is similar to @code{tcov}'s @samp{-a}. -@item --demangle +@item --demangle[=@var{style}] @itemx --no-demangle These options control whether C++ symbol names should be demangled when printing output. The default is to demangle symbols. The -@code{--no-demangle} option may be used to turn off demangling. - +@code{--no-demangle} option may be used to turn off demangling. Different +compilers have different mangling styles. The optional demangling style +argument can be used to choose an appropriate demangling style for your +compiler. @end table @node Analysis Options,Miscellaneous Options,Output Options,Invoking |