Commit Graph

46 Commits

Author SHA1 Message Date
Ian Lance Taylor 8c73afb353 Avoid some overflow cases:
* basic_blocks.h (bb_min_calls): Change to unsigned long.
	* call_graph.h (cg_tally): Change count parameter to unsigned
	long.
	* cg_arcs.h (Arc): Change count field to unsigned long.
	(arc_add): Change count parameter to unsigned long.
	* source.h (Source_File): Change ncalls field to unsigned long.
	* symtab.h (Sym): Change fields ncalls, bb_calls, and
	cg.self_calls to unsigned long.
	* Many files: Update accordingly.
1998-08-12 19:06:24 +00:00
Tom Tromey 64eaad40db * gprof.c (main): Conditionally call setlocale.
* gprof.h: Include <locale.h> if HAVE_LOCALE_H.
	(LC_MESSAGES): Now can be defined even when ENABLE_NLS.
1998-04-29 02:59:28 +00:00
Ian Lance Taylor 43870aec5e * corefile.c: Rename from core.c.
* corefile.h: Rename from core.h.
	* Many .c files: Include corefile.h rather than core.h.
	* Makefile.am (sources): Change core.c to corefile.c.
	(noinst_HEADERS): Change core.h to corefile.h.
	($(OBJECTS)): Depend upon corefile.h rather than core.h.
	(corefile.o): Rename target from core.o, depend upon corefile.c.
	* Makefile.in, po/POTFILES.in: Rebuild.
1998-04-28 23:52:20 +00:00
Tom Tromey 16a02269fc * gprof.h: Added includes and defines for gettext.
* configure.in (ALL_LINGUAS): New macro.
	Call CY_GNU_GETTEXT.  Create po/Makefile.in and po/Makefile.
	* acconfig.h (ENABLE_NLS, HAVE_CATGETS, HAVE_GETTEXT, HAVE_STPCPY,
	HAVE_LC_MESSAGES): Define.
	* gprof.c (main): Call setlocale, bindtextdomain, textdomain.
	* Makefile.am (SUBDIRS): New macro.
	(INCLUDES): Look in intl dirs for headers.  Define LOCALEDIR.
	(gprof_DEPENDENCIES): Added INTLDEPS.
	(gprof_LDADD): Added INTLLLIBS.
	(POTFILES): New macro.
	(po/POTFILES.in): New target.
	* Many files: Wrap user-visible strings with gettext invocation.
1998-04-22 07:33:42 +00:00
Ian Lance Taylor e4dee78c68 Add --demangle and --no-demangle options:
* gprof.h (demangle): Declare.
	* gprof.c (demangle): New global variable.
	(OPTION_DEMANGLE, OPTION_NO_DEMANGLE): Define.
	(long_options): Add "demangle" and "no-demangle".
	(usage): Mention --demangle and --no-demangle.
	(main): Handle OPTION_DEMANGLE and OPTION_NO_DEMANGLE.
	* utils.c (print_name_only): Only demangle symbol name if demangle
	is true.
	* gprof.texi (Output Options): Document new options.
1998-03-25 00:06:23 +00:00
Ian Lance Taylor 6590e0d571 * gprof.c (usage): Update bug-gnu-utils address. 1998-02-12 19:36:41 +00:00
Ian Lance Taylor 7862d7d065 Tue Feb 3 14:25:25 1998 Brent Baccala <baccala@freesoft.org>
* symtab.c (symtab_finalize): Prefer function symbols over line
	symbols.
	(dbg_sym_lookup): Correct debugging messages.

	* gprof.c (main): --sum implies --line.

	* cg_print.c (cg_print): When doing line by line profiling, don't
	use a non-function as a main listing item.

	* call_graph.c (cg_tally): When using line by line profiling, use
 	the function symbol as the child.

	* symtab.h (NBBS): Define.
	(Sym): Add bb_addr and bb_calls fields.
	* basic_blocks.c (bb_read_rec): Save multiple basic blocks per
	symbol.
	(bb_write_blocks): Adjust for multiple basic blocks per symbol.
	(print_exec_counts): Don't check whether a symbol is the start of
	a basic block.  Print all basic blocks for a symbol.
	(annotate_with_count): Rewrite to print all basic block counts and
	to pay attention to width argument.
	(print_annotated_source): Don't check whether symbol is the start
	of a basic block.
1998-02-04 00:30:48 +00:00
Ian Lance Taylor c3de2a19e8 Tue Feb 3 14:25:25 1998 Brent Baccala <baccala@freesoft.org>
Make it possible to build a cross gprof, although a few cases are
	still not handled:
	* configure.in: Don't set MY_TARGET.
	* gprof.h: Don't include MACHINE_H.  Don't define FOPEN_RB or
	FOPEN_WB; just get them from sysdep.h.
	* core.h (min_insn_size, offset_to_code): Declare.
	* core.c (MIN_INSN_SIZE): Don't define.
	(min_insn_size, offset_to_code): New variables.
	(core_init): Initialize min_insn_size and offset_to_code.
	(find_call): New function.
	(core_create_line_syms): Don't use min_dist.  Set is_static in
	pass 2.
	* hist.c (UNITS_TO_CODE): Define.
	* gprof.c (default_excluded_list): Add "__mcount_internal".
	* gmon.h: Change TARGET_alpha to __alpha__.
	* hertz.h: Ifdef MACH, define hertz as HZ.
	* alpha.c (alpha_Instruction): Rename from Instruction.  Change
	all references.
	(alpha_find_call): Rename from find_call.
	* alpha.h: Remove.
	* dummy.c, dummy.h: Remove.
	* i386.c (i386_iscall): Rename from iscall.  Change all
	references.  Check for call instruction, not jump or lcall.
	(i386_find_call): Rename from find_call.  Correct for VMA.
	Correct call destination computation.  Don't dereference symbol if
	it is NULL.
	* i386.h: Remove.
	* ns532.c, ns532.h: Remove.
	* sparc.c (CALL): Define.
	(sparc_find_call): Rename from find_call.
	* sparc.h: Remove.
	* tahoe.c: Include cg_arcs.h, core.h, hist.h, and symtab.h.  Don't
	include time_host.h.
	(CALLF, PC): Define.
	(enum tahoe_opermodes, tahoe_operandenum): Define.  Rename all
	references to opermodes or operandenum to these.
	(tahoe_operandmode): Rename from operandmode.  Call abort if
	switch does not return.
	(tahoe_operandname): Rename from operandname.  Call abort if
	switch does not return.
	(tahoe_operandlength): Rename from operandlength.  Call abort if
	switch does not return.
	(tahoe_reladdr): Rename from reladdr.
	(tahoe_find_call): Rename from find_call.  Use core_text_space
	rather than textspace.
	* tahoe.h: Remove.
	* vax.c (CALLS, PC): Define.
	(enum opermodes, operandenum, struct modebyte): Define.
	(vax_operandmode): Rename from operandmode.  Call abort if switch
	does not return.
	(vax_operandname): Rename from operandname.  Call abort if switch
	does not return.
	(vax_operandlength): Rename from operandlength.  Call abort if
	switch does not return.
	(vax_reladdr): Rename from reladdr.
	(vax_find_call): Rename from find_call.
	* vax.h: Remove.
	* Makefile.am (AUTOMAKE_OPTIONS): Set to cygnus.
	(MY_TARGET): Remove.
	(INCLUDES): Remove -DTARGET_$(MY_TARGET) and -DMACHINE_H=
	\"$(MY_TARGET).h\".
	(gprof_SOURCES): Add i386.c, alpha.c, vax.c, tahoe.c, sparc.c.
	(gprof_DEPENDENCIES): Remove $(MY_TARGET).o.
	(gprof_LDADD): Likewise.
	(noinst_HEADERS): Remove alpha.h, i386.h, ns532.h, sparc.h,
	tahoe.h, vax.h, dummy.h.
	(EXTRA_DIST): Remove alpha.c, i386.c, ns532.c, sparc.c, tahoe.c,
	vax.c, dummy.c.
	($(OBJECTS)): Don't depend upon $(MY_TARGET).h.
	($(MY_TARGET).o): Remove target.
	(i386.o, alpha.o, vax.o, tahoe.o, sparc.o): New targets.
	* configure, Makefile.in, aclocal.m4: Rebuild.
1998-02-03 19:52:41 +00:00
Ian Lance Taylor 274e44aeeb * configure.in: Change version number to 2.8.2. Call
AM_PROG_LIBTOOL.  Remove shared library handling; now handled by
	libtool.  Add AM_CONFIG_HEADER.  Change AC_PROG_INSTALL to
	AM_PROG_INSTALL.  Add AM_EXEEXT.
	* Makefile.am (LINK): Remove.
	(gprof_LDFLAGS): Remove
	(gprof_DEPENDENCIES): Change libbfd.a to libbfd.la.
	(gprof_LDADD): Likewise.
	($(OBJECTS)): Depend upon gconfig.h and ../bfd/config.h.
	* gprof.h: Undefine PACKAGE and VERSION after including BFD
	sysdep.h file, then include new gconfig.h file.
	* gprof.c (VERSION): Don't define.
	* acconfig.h: New file.
	* stamp-h.in: New file.
	* gconfig.in: New file, created by autoheader.
	* Makefile.in, configure, aclocal.m4: Rebuild.
1997-08-09 20:30:19 +00:00
Ian Lance Taylor 4910935152 * gprof.c (VERSION): Define as "2.8.1". 1997-04-03 18:21:59 +00:00
Ian Lance Taylor d2ee1370c2 * gprof.c (main): Correct copyright message. 1997-03-27 22:18:17 +00:00
Ian Lance Taylor 50622dea73 * gprof.c (usage): Print bug report address.
(main): Change version printing to match current GNU standards.
1996-10-01 19:58:36 +00:00
Ian Lance Taylor 4cdbf68f7d * gprof.c (VERSION): Define as "2.7.1". 1996-07-04 19:39:24 +00:00
Ian Lance Taylor 0f579087ab Thu Mar 21 17:02:02 1996 David Mosberger-Tang <davidm@azstarnet.com>
* gprof.c (default_excluded_list): Add "__mcount".

	* gprof.c (main): Change ifdef __osf__ to __alpha__.

	* gmon_io.c (gmon_out_read): If BSD44_FORMAT is defined, get the
	profiling rate from the header.

	* gmon.h (struct raw_phdr): Only include pad if both __alpha__ and
	__osf__ are defined.  Add new fields if BSD44_FORMAT is defined.

	* alpha.h (MIN_INSN_SIZE): Define.
	* core.c (MIN_INSN_SIZE): If not defined, define as 1.
	(core_sym_class): Ignore debugging symbols.
	(core_create_line_syms): Use MIN_INSN_SIZE when gathering line
	information.
1996-03-21 22:07:14 +00:00
Jeff Law 64c50fc5db * gprof.c (long_options): Add "--function-ordering" and
"--file-ordering" options.
	(usage): Add new options to usage message.
	(main): Handle new options.
	* gprof.h (STYLE_FUNCTION_ORDER): Define.
	(STYLE_FILE_ORDER): Define.
	(function_mapping_file): Declare.
	* cg_arcs.c (arcs, numarcs): New globals.
	(arc_add): Put new arcs into the arc array so the function/file
	ordering code can examine them.
	* cg_arcs.h (struct arc): New field "has_been_placed".
	(arcs, numarcs): Declare new globals.
	* core.c (symbol_map, symbol_map_count): New globals.
	(read_function_mappings): New function to read in a function
	to object map file.
	(core_init): Call read_function_mappings if a function mapping
	file exists.
	(core_create_function_syms): Handle function to object file
	mappings.
	* symtab.h (struct sym): New fields "mapped", "has_been_placed",
	"nuses", "prev".
	* cg_print.c (cmp_arc_count): New function for sorting arcs.
	(cmp_fun_nuses): Likewise for functions.
	(cg_print_function_ordering): New function to print a suggested
	function ordering.
	(cg_print_file_ordering): Likewise for ordering .o files.
	(order_and_dump_functions_by_arcs): Helper function for function
	and object file ordering code.
Gprof changes for mentor vm work.
1995-12-31 06:36:30 +00:00
Jeff Law 32843f948c * 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.
1995-12-25 04:32:29 +00:00
Ian Lance Taylor 31af2d7e05 * gprof.c (main): Cast getenv return value. 1995-11-08 16:40:24 +00:00
Ken Raeburn 03c35bcb6e * __bb_exit_func.c: New file, from David Mosberger-Tang.
Thu Feb  9 16:56:07 1995  David Mosberger-Tang  <davidm@piston.cs.arizona.edu>

* All *.c: More cleanup towards GNU format.

* gmon_out.h (struct gmon_hist_hdr, struct gmon_cg_arc_record): replaced sizeof
(bfd_vma) by size (char*) because Ken tells me that bfd_vma is only guaranteed
to be at least as big as a pointer.

(GMON_Record_tag): added explicit enumeration values to ensure compatibility
across compilers.

* gmon_io.c (get_vma, put_vma): replaced sizeof(bfd_vma) by sizeof(char*).
1995-03-14 02:58:16 +00:00
Ken Raeburn 12516a373c ran "indent -gnu"; have not fixed block comment style 1995-02-08 02:35:44 +00:00
Ken Raeburn 5489fcc3d9 Lots of changes from David Mosberger-Tang; see ChangeLog and NOTES for details:
Alpha support.
Long options.
New file format to support more information; backwards compatibility.
Line-level profiling, on systems where bfd_find_nearest_line works.
Selective display of data.
1995-02-07 22:34:18 +00:00
Ian Lance Taylor f43a7782d0 * gprof.c (funcsymbol): Ignore ___gnu_compiled as well as
__gnu_compiled, for the benefit of systems which add a leading
	underscore.
1994-08-30 15:15:09 +00:00
Ken Raeburn fbcbb8c4d4 ns532 support from Ian Dall 1994-07-13 23:21:45 +00:00
Ken Raeburn c06e55d99a changes from gas-2.3/binutils-2.4 dist (details in branch log msgs, changelogs) 1994-05-27 16:58:05 +00:00
Ian Lance Taylor bd7fc39d75 * gprof.c (getsymtab): Change nosyms to long. Rename
get_symtab_upper_bound to bfd_get_symtab_upper_bound.  Check for
	errors from bfd_get_symtab_upper_bound and
	bfd_canonicalize_symtab.
1994-03-30 22:06:39 +00:00
Jeff Law 4b8250bda2 * gprof.c (funcsymbol): Use bfd_get_symbol_info instead of
bfd_decode_symclass.
1994-03-22 18:51:41 +00:00
David D. Zuhn fc3a75fb2b update rev to 5.6(Cygnus) 1993-12-16 04:24:16 +00:00
David D. Zuhn b4f476e939 add -v flag to gprof (print version number) 1993-12-16 04:14:45 +00:00
Sean Eric Fagan 2ea5f3252a Use BFD to determine what a symbol prefix is, be better about determining
which symbols to study, and divide by the correct amount.
1993-08-13 21:38:41 +00:00
David MacKenzie 7ce122a201 * gprof.c (main): Get whoami from argv, instead of hardcoding.
Use it in usage message.  Split usage message to fit in 80 cols.
1993-06-24 21:44:34 +00:00
Steve Chamberlain 73fbbeead4 * gmon.h, gprof.h: structs of chars used to hold external
representations.
	* gprof.c (getpfile, openpfile, readsamples): Swap data in using
	new structures.
1993-06-16 19:58:37 +00:00
Sean Eric Fagan 6699a5555d gprof(1) can have more than one profile data file, so have the usage
message reflect that.
1993-04-14 00:04:18 +00:00
Per Bothner 9d65137307 * M Makefile.in: Add -g to CFLAGS.
Ads LDFLAGS and use in place of CFLAGS where appropriate.
	* configure.in:  Make a sysdep.hlink in the same way other
	bfd-based directories do.
	* gprof.h (UNIT):  Replace non-standard 'u_short' by 'unsigned
	short'.
	* gprof.h:  #include sysdep.h instead of a bunch of stuff.
	* gprof.c (main):  Fix typo gproff->gprof.
1993-04-13 23:20:14 +00:00
Per Bothner 33023c9c9c * gprof.c (funcsymbol): Invert test for aflag. 1993-02-28 02:18:40 +00:00
Sean Eric Fagan 804c13bdb1 Add a usage statement if an unrecognized option is given. 1993-01-24 19:07:11 +00:00
Per Bothner dc1d1ca5e8 * gprof.h, gprof.c, printfgprof.c: Add support for two
output styles:  The default is similar to the old FSF gprof,
	while -T sets the variable bsd_style_output, which causes
	output matching Berkeley's gprof.  The biggest differences
	are that with the FSF style output, the flat profile comes
	before the call graph; numbers come before explanations;
	and there is less gratuitous white space.
	* gprof.h, gprof.c, printfgprof.c:  New discard_underscores
	variable causes discarding of initial underscores when
	printing symbol names.  It is set unless there is a "main"
	symbol (without an underscore).
	* printfgprof.c:  New function printnameonly(), called
	by printname().  It handles stripping of initial '_',
	as well as C++ name-demangling.
	* gprof.callg, gprof.flat, make-c-prog.awk:  Removed.
	It is just as convenient to edit blurbs.c directly.
	* Makefile.in:  Removed rule for making blurbs.c.
	* blurbs.c:  This is now a true source file (as opposed
	to being generated from gprof.callg and gprof.flat).
	Change style to use one long string literal, instead of
	one literal per output line.  Add FSF-style blurb for call graph.
1992-08-31 03:34:15 +00:00
Mark Eichin a7a2ea6874 correct use of bfd symbols 1992-08-27 21:19:27 +00:00
John Gilmore 028fe6367a Lint 1992-07-13 11:59:22 +00:00
John Gilmore 9388476b43 * blurbs.c: New file, created from gprof.flat and gprof.callg by
* make-c-prog.awk:  which processes text files into C programs.
	* printgprof.c (flatprofheader, gprofheader):  Call new functions
	to print blurbs.
	(printblurb):  Remove.
	* Makefile.in:  Infrastructure to build blurbs.
	* pathnames.h:  has been removed.  Gprof now has no filename
	dependencies in it.
	* gprof.c:  Lint.

Sat Jul 11 18:07:21 1992  david d `zoo' zuhn  (zoo at cirdan.cygnus.com)

	* Makefile.in: define man1dir and install the man page

Fri Jul 10 21:14:08 1992  david d `zoo' zuhn (zoo@cygnus.com)

	* Makefile.in: added dummy info and install-info targets
1992-07-13 02:24:24 +00:00
Mark Eichin a0d48c83a3 restore some old code to punt symbols which are BSF_LOCAL (needed for Solaris,
should be correct for anything else.)
1992-07-01 22:52:47 +00:00
Mark Eichin ba79f5fa08 Thu Jun 4 11:34:02 1992 Mark Eichin (eichin at cygnus.com)
* lookup.c: fixed fencepost in nllookup and added dbg_nllookup for
	help in debugging the problem (with -DDEBUG)
	* gprof.c: symbol values are now real values, don't add the vma
	anymore. (done for solaris; should verify this on other platforms)
	* ChangeLog: created.
1992-06-04 18:36:56 +00:00
Sean Eric Fagan 46f88c1138 More cleanups for gprof, especially with the '386 target. 1992-03-27 22:11:14 +00:00
Sean Eric Fagan 77c9b2c3e2 Fixed bugs (both typos and algorithmic) bugs. It now matches native gprof's
on both the sparc (SunOS) and Mach386 systems, more or less.  (The differences
are at least partially due to what I think might be bugs in the native
gprof.)
1992-03-06 11:56:31 +00:00
Sean Eric Fagan a11d7ba33e Updating gprof for latest bfd stuff, and making configure work. 1992-02-11 23:15:03 +00:00
Sean Eric Fagan 5f630bb0e2 Put in a check to make sure symbols have names; if there is no name, then
the symbol is not a function (I assume).
1991-07-22 20:35:30 +00:00
Sean Eric Fagan 811e3c6a86 Made gprof use bfd instead. This is the first step in allowing cross-hosted
gprof use.
1991-07-22 19:33:46 +00:00
Sean Eric Fagan 3d6c650189 Initial revision 1991-07-18 20:19:17 +00:00