bc7317ef89
master binutils sources that fix gprof for LP64 platforms and also fix some problems with cross-gprof: * TODO: Remove "host architecture pointer size" item. * gmon.h (GMON_HDRSIZE_BSD44_32): Define. (GMON_HDRSIZE_BSD44_64): Ditto. (GMON_HDRSIZE_OLDBSD_32): Ditto. (GMON_HDRSIZE_OLDBSD_64): Ditto. (struct raw_phdr): Wrap in #if 0, keeping it for documentation purposes only. (struct old_raw_phdr): Likewise. (struct raw_arc): Likewise. Change type/size of "count" member to long match 4.4BSD. * gmon_io: Update copyright years. (gmon_io_read_64): New function. (gmon_io_read_vma): Use bfd_arch_bits_per_address to determine target pointer size. Use gmon_io_read_32 and gmon_io_read_64. (gmon_io_write_64): New function. (gmon_io_write_vma): Use bfd_arch_bits_per_address to determine target pointer size. Use gmon_io_write_32 and gmon_io_write_64. (get_vma): Remove. (put_vma): Ditto. (gmon_read_raw_arc): New function. (gmon_write_raw_arc): New function. (gmon_out_read): Do not use struct raw_phdr or struct old_raw_phdr to read the gmon header. Use gmon_read_raw_arc to read call graph records. (gmon_out_write): Do not use struct raw_phdr or struct old_raw_phdr to write the gmon header. Use gmon_write_raw_arc to write call graph records. This makes the GMON_PTR_SIZE constant obsolete, however I have not included the changes to the autoconf machinery that eliminate that constant completely in order to minimize the changes here (they will be picked up when we import Binutils 2.12 when it is released).
70 lines
3.3 KiB
Plaintext
70 lines
3.3 KiB
Plaintext
|
|
- add support for prof file format so that prof files can be displayed
|
|
at the line-level (this is useful for the uprofile tool under DEC's
|
|
OSF/1)
|
|
- take a hard look at --file-ordering (broken) and --function-ordering
|
|
|
|
+ documentation
|
|
+ optimize bfd_find_nearest_line_num() (or replace by different interface)
|
|
+ cleanup _bfd_ecoff_find_nearest_line_num() fixes & description
|
|
+ ensure "cc -pg" produces good files under OSF/1 v3.0
|
|
+ make sure gprof works together with OSF/1 v3.0's profiling libraries
|
|
+ implement symtab_parse(); modify sym_lookup() to consider addr_high
|
|
+ change gprof.c to collect lists, then invoke symtab_parse() for
|
|
each list
|
|
+ Questions:
|
|
o is -c (--static-call-graph) useful at all? i can't see
|
|
how; if it were deleted, gprof would be completely machine
|
|
independent => yup, it is
|
|
o are (long) option names appropriate?
|
|
o -k (--exclude-arc) cannot be implemented with getopt();
|
|
is new syntax (-k from/to) acceptable? If not, how to
|
|
fix it?
|
|
o in the FSF output, the call-graph index now prints
|
|
the filename of static functions in parentheses; e.g.,
|
|
static function foo() that is defined in file bar.c
|
|
would be printed as:
|
|
|
|
[4] foo (bar.c)
|
|
|
|
is this acceptable? should it be done only optionally?
|
|
o symbols with addresses that map back to a different
|
|
name are suppressed (happens with labels, for example);
|
|
is this acceptable? should it be done only optionally?
|
|
+ generalize to allow arbitrary histograms (not just time histograms)
|
|
+ basic-block information currently replaces all symbols created from
|
|
the core because of an ugly ordering conflict---for now, the current
|
|
solution works, but something cleaner is desirable ==> cleaned up,
|
|
but it's slower now
|
|
+ convert to very new file format (back to trivial format, that is :)
|
|
+ replace "dummy.h" for Alpha (if there is any use to it)
|
|
+ add support for execution time profiling at a basic-block level
|
|
+ fix filename-off-by-one bug for Alpha (see ~/tmp/d.[ch])---no longer
|
|
relevant
|
|
+ "-pg -a" doesn't work as expected because mcleanup() will overwrite
|
|
the file generated by __bb_exit_func() (or vice versa)
|
|
+ first basic-block of fac() seems to get credited to last basic-block
|
|
of previous function => bug in basic_blocks.c
|
|
+ flat profile should provide automatic scaling for per-call times because
|
|
otherwise they'll always be zero on a fast machine with tons of small
|
|
functions
|
|
+ make "-a" imply to retain line number info (without actually generating
|
|
the debugging information (unless -g is specified)---no, this is a
|
|
bad idea, because it is not clear what level of debugging info should
|
|
be requested (e.g., -g vs. -g3); leaving it up to the user seems best
|
|
+ add long options support (or at least use getopt instead of ad-hoc
|
|
implementation)
|
|
+ split into files according to abstract objects that are manipulated
|
|
+ replace sccsid by rcsid & add "end of ..." to every .c file
|
|
+ use DBG() everywhere
|
|
+ fix spacing (" ," -> "," etc.)
|
|
+ use DEFUNs everywhere
|
|
+ make compile cleanly with -Wall
|
|
+ "gcc -pg -O2" doesn't work on tecc.c unless -fno-omit-frame-pointer is
|
|
specified; find out why
|
|
+ make things portable (prototypes, const, etc.)
|
|
+ if NEW_GMON_OUT is not defined, have a flag that will allow to
|
|
read new gmon.out style files. The idea being that everyone
|
|
will use the new format for basic-block style profiling but
|
|
the old format for regular gpprofiling
|