2008-02-17 Soren Sandmann <sandmann@redhat.com>
* collector.c (lookup_symbol): Add commented out code to reject
callback.
* elfparser.c (struct ElfParser): Store the filename if any
(elf_parser_get_sym_address): Subtract the load address, so the
result will be an offset into the text section.
* process.[ch] (process_lookup_symbol): Add an offset out-argument
* binfile.[ch] (bin_symbol_get_address): New function
* TODO: updates
svn path=/trunk/; revision=397
2007-11-16 Soren Sandmann <sandmann@daimi.au.dk>
* TODO: updates
* module/sysprof-module.c (sysprof_poll): Only select readable
when there is at least eight traces available
* collector.c (collect_traces): New function, old on_read()
* collector.c (collector_create_profile): Collect traces here as
well.
svn path=/trunk/; revision=388
2007-11-16 Soren Sandmann <sandmann@daimi.au.dk>
* TODO: Updates
* process.c (process_locate_map): Move map to front
* profile.c (profile_load): Ignore the toplevel field in the file
since we can compute it ourselves.
* stackstash.c (stack_stash_decorate): New function
* stackstash.c (stack_stash_add_trace): Decorate the tree lazily
instead of on each sample.
svn path=/trunk/; revision=387
2007-10-22 Soren Sandmann <sandmann@daimi.au.dk>
* process.c (look_for_vmlinux): Use an array instead of a
list. Look for vmlinux in the source directory.
* elfparser.c (elf_parser_get_crc32): Only use MADV_DONTNEED if
the data is file-backed.
* TODO: updates.
Various formatting fixes
svn path=/trunk/; revision=385
2007-10-22 Soren Sandmann <sandmann@daimi.au.dk>
* profile.c (add_trace_to_tree): Make this a two-pass
algorithm, one pass to add the trace, and one to do the
accounting.
svn path=/trunk/; revision=384
2007-10-22 Soren Sandmann <sandmann@daimi.au.dk>
* sfile.c: Fix some spelling errors
* profile.[ch], sysprof.[ch]: Change "non_recursive" to
"cumulative" to match the UI
* profile.c (add_trace_to_tree): Add a couple of asserts.
* TODO: updates
svn path=/trunk/; revision=383
2007-09-16 Soren Sandmann <sandmann@daimi.au.dk>
* process.c (process_lookup_kernel_symbol): Add support for
looking up kernel symbols from /proc/kallsyms
* sysprof-text.c (dump_data): Print note that the file is being
saved.
* module/sysprof-module.[ch] (timer_notify): Send a copy of the
kernel stack to userspace.
* collector.c: Do kernel symbol lookups.
svn path=/trunk/; revision=372
2007-02-24 Soren Sandmann <sandmann@daimi.au.dk>
* TODO: Updates
* binparser.[ch]: Get rid of BIN_UINTn types; replace with single
BIN_UINT, where the user must provide the width
* elfparser.c: Update to new binparser API
svn path=/trunk/; revision=354
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.
2006-10-26 Soren Sandmann <sandmann@daimi.au.dk>
* module/sysprof-module.h (struct SysprofStackTrace): Increase the
max number of addresses to 1021, reorganise SysprofMmapArea to
make the traces naturally page aligned.
* TODO: Update
+2006-10-25 Soren Sandmann <sandmann@daimi.au.dk>
+
+ * process.c (free_maps): Take a pointer to a variable that
+
+ * process.c: Stop coalescing processes with the same cmdline.
+
+ * TODO: updates.
+
2006-10-09 Soren Sandmann <sandmann@daimi.au.dk>
* profile.c (profile_list_callers): Make this function return a
list of immediate callers again.
* sysprof.c (build_gui): Change label back to "Callers"
* process.c (get_kernel_symbols): Only attempt to read the kernel
symbols once.
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@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>
* elfparser.c (elf_parser_get_debug_link): New function
* elfparser.c: Delete SymbolTable typedef
* binparser.[ch] (bin_parser_get_data): New function
(bin_parser_get_length): New function
* elfparser.[ch] (elf_parser_get_crc32): New function
* TODO: Updates
* elfparser.c (elf_parser_lookup_symbol): Offset passed in
addresses by the load address.
* elfparser.c (elf_parser_get_load_address): New function to
compute the load address of the beginning of the file.
Sat Aug 12 16:13:05 2006 Søren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c: Make n_samples per-cpu. Add an atomic
variable in_timer_notify and use it to lock out simultaneous timer
interrupts.
* stackstash.c (decorate_node): Make decorate_node() static
* TODO
Mon Mar 27 21:44:04 2006 Soeren Sandmann <sandmann@redhat.com>
* sformat.[ch]: New files containing a simplified and sanitized
version of the state machine and type system from sfile.c.
* sfile.c: Move the state machine and type management to separate
files. Make the amount of memory used during loading and saving
less obscene.
* stackstash.c (stack_stash_new_from_root): Make this function
store the root again.
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.