Mon Mar 5 16:55:39 2007 Søren Sandmann <sandmann@redhat.com>
* binfile.c (already_warned): New function. Only warn once about
bad CRC's.
svn path=/trunk/; revision=361
Fri Feb 9 16:16:34 2007 Søren Sandmann <sandmann@redhat.com>
* elfparser.c (struct ElfSym): Don't store the size of the symbol.
(elf_parser_lookup_symbol): Look it up here instaed.
* binfile.c (bin_file_free): Use pre-decrement instead of
post-decrement.
(bin_file_check_inode): Clarify the warning a little
svn path=/trunk/; revision=349
2006-11-23 Soren Sandmann <sandmann@daimi.au.dk>
* process.c (read_maps): Set inode for vdso to 0.
* binfile.c (read_inode): Return -1 on error, 0 on vdso
(bin_file_new): Only read the inode if the file actually exists
and is an elf file.
(bin_file_check_inode): Return FALSE if there is no file.
Thu Nov 9 17:31:17 2006 Søren Sandmann <sandmann@redhat.com>
* binfile.c (get_debug_file): Start with "/usr", not
"usr". Pointed out by Tim Rowley.
* binparser.c (bin_parser_align): Pass byte_width on instead of
hardcoding 4.
Thu Nov 9 16:47:35 2006 Søren Sandmann <sandmann@redhat.com>
Look in the correct directory for debug info files. (Tim Rowley)
* binfile.c (N_TRIES): Add this instead of hardcoding '3'
* binfile.c (get_debug_file): Also look in "/usr/lib/debug", in
addition to "$(libdir)/debug".
* binfile.c: Comment out the debug spew.
Thu Nov 9 16:01:47 2006 Søren Sandmann <sandmann@redhat.com>
* sysprof-text.c (main): Die immediately if the output file is a
directory.
* autogen.sh (DIE): Also work when automake-1.9 is installed.
2006-10-09 Soren Sandmann <ssp@localhost.localdomain>
* process.c (process_get_vdso_bytes): New function.
* elfparser.c (parser_new_from_data): export this function as
elf_parser_new_from_data().
* binfile.c (read_inode): Don't stat if filename is
'[vdso]'. Instead just return -1;
(bin_file_new): Use elf_parser_new_from_data() when the file is
[vdso].
* process.c (read_maps): Change the offset of the vdso map to 0
and the inode to -1.
* elfparser.c (elf_parser_lookup_symbol): Remove unused 'size'
variable.
* binfile.c (find_separate_debug_file): Deal with cycles in the
debuglink graph.
* configure.ac: Set version to 1.1.0. Print warning about HEAD.
2006-10-08 Soren Sandmann <sandmann@redhat.com>
* elfparser.c (struct ElfParser): Add a cache of the text section.
* binparser.c (struct BinParser): Add a cache of a bin record to
get rid of malloc()/free() overhead.
* elfparser.c (struct ElfSym): Cache the size of the symbol
2006-10-08 Soren Sandmann <sandmann@daimi.au.dk>
* binfile.c (find_separate_debug_file): Support _debuglink
recursions.
* elfparser.c: Check that the sections have valid types before
using them.
2006-10-07 Soren Sandmann <sandmann@daimi.au.dk>
Deal with address offsets. Address lookup is now:
- First convert the address to an offset into the file
- Then convert to an offset into the text segment
- Then add the load address of the text segment (found in the
debug binary)
- Then finally lookup the result in the symbol table.
* elfparser.c (elf_parser_get_text_offset): New function
* elfparser.c (elf_parser_lookup_symbol): Treat addresses as
offsets into the text segment.
* binfile.c (bin_file_new): Store the offset of the text section
of the actual binary (not the debug one)
(bin_file_lookup_symbol): Subtract text_offset before passing
address to elf parser.
* module/sysprof-module.c: Remove include of linux/config.h
2006-08-21 Soren Sandmann <sandmann@redhat.com>
* elfparser.[ch]
(elf_parser_get_sym_name): Rename elf_sym_get_* to
elf_parser_get_sym_* and make these functions take a parser.
(parser_from_sym): Delete this function.
(elf_parser_new): Don't add to all_elf_parsers
(elf_parser_free): Don't remove from all_elf_parsers
(elf_parser_new): Rename to parser_new_from_file()
(elf_parser_new_from_file): Rename to elf_parser_new
* binfile.c: Update for new elfparser API
* TODO: updates
2006-08-21 Soren Sandmann <sandmann@redhat.com>
* binfile.c (struct BinFile): Add ref_count and filename
(bin_files): Add map from filenames to BinFiles
(bin_file_new): First look for BinFile in the cache.
(bin_file_free): If refcount reaches 0, remove BinFile from cache.
* TODO: Updates
2006-08-20 Soren Sandmann <sandmann@daimi.au.dk>
* process.h: Make process_lookup_symbol() return a string. Delete
process_lookup_symbol_with_filename().
* process.c (struct Process): Make "undefined" a string
(lookup_kernel_symbol): Return a string
(process_lookup_symbol): Return a string, not a symbol
* collector.c (unique_dup): Take a string instead of a
Symbol.
(lookup_symbol): Make sym a string instead of a Symbol.
* binfile.c (bin_symbol_get_name): New function.
* binfile.[ch] (struct BinSymbol): Rename Symbol to BinSymbol and
make it an opaque structure.
* binfile.[ch]: Remove unused symbol operations
2006-08-20 Soren Sandmann <sandmann@redhat.com>
* Makefile.am, demangle.c: New file, made out of files from
libiberty in binutils.
* binfile.c: Use the new sysprof_cplus_demangle() function
* elfparser.[ch]: Add code to lookup symbols. Add demangling
function
* testelf.c: Various tests
Fri Mar 3 22:28:03 2006 Soeren Sandmann <sandmann@redhat.com>
* process.c (process_lookup_symbol): Check that the inodes match.
* binfile.c (read_symbols): Read the inode of the file
* binfile.c (read_symbols): Close the bfd if the symbol table
could not be read.
Sat May 7 13:57:17 2005 Søren Sandmann <sandmann@redhat.com>
* sfile.c (sfile_output_free): Implement this function
* sfile.c (sfile_input_free): Implement this function
Tue Apr 5 23:01:02 2005 Søren Sandmann <sandmann@redhat.com>
* binfile.c (read_symbols): Put back the weird loop, and stop
pretending I understand this. This time use SEC_ALLOC instead of
SEC_LOAD.
Tue Apr 5 20:13:44 2005 Søren Sandmann <sandmann@redhat.com>
* process.c (process_ensure_map): Add commented out debug spew.
* process.c (process_lookup_symbol): Remove all should_offset()
function and all references to it.
* binfile.c (bin_file_lookup_symbol): Document that address must
be in file coordinates.
* binfile.c (read_symbols): Remove misguided code that tried to
guess the load address of the file. Instead, do all computations
in "file coordinates". Also fix a memory leak. Add commented out
debug spew.
* binfile.c (separate_debug_file_exists): Fix signedness