Files
sysprof/ChangeLog
Geoffrey Keating e11dfce31f Apply patch from binutils to demangle local-source names. Binutils
Wed Jun  4 21:52:17 2008  Søren Sandmann  <sandmann@redhat.com>

	* demangle.c: Apply patch from binutils to demangle local-source
	names. Binutils changelog:

	2007-05-05  Geoffrey Keating  <geoffk@apple.com>

		* cp-demangle.c (d_name): Detect local-source-name.
		(d_prefix): Likewise.
		(d_unqualified_name): Implement local-source-name.

	* sysprof.c: Update copyright statement
	


svn path=/trunk/; revision=434
2008-06-05 02:09:33 +00:00

2181 lines
61 KiB
Plaintext

Wed Jun 4 21:52:17 2008 Søren Sandmann <sandmann@redhat.com>
* demangle.c: Apply patch from binutils to demangle local-source
names. Binutils changelog:
2007-05-05 Geoffrey Keating <geoffk@apple.com>
* cp-demangle.c (d_name): Detect local-source-name.
(d_prefix): Likewise.
(d_unqualified_name): Implement local-source-name.
* sysprof.c: Update copyright statement
Mon Jun 2 01:35:25 2008 Søren Sandmann <sandmann@redhat.com>
* demangle.c: Remove weird comment.
* elfparser.h: Formatting.
Mon Jun 2 01:14:17 2008 Søren Sandmann <sandmann@redhat.com>
* binfile.c (get_debug_binaries): Remove left-over #if 0
Mon Jun 2 01:10:38 2008 Søren Sandmann <sandmann@redhat.com>
* binfile.c (get_debug_binaries): Simplify loop.
Mon Jun 2 00:58:17 2008 Søren Sandmann <sandmann@redhat.com>
* binfile.c (get_debug_binaries): Actually recurse on the
debuglink.
Mon Jun 2 00:56:00 2008 Søren Sandmann <sandmann@redhat.com>
* binfile.c (get_debug_binaries): Plug leak
Mon Jun 2 00:51:46 2008 Søren Sandmann <sandmann@redhat.com>
* binfile.c (get_debug_binaries): Keep a list of elf files for
each binary file. In some cases, notably glibc on Fedora, the
debug binary does not contain a symbol table, but the original
file does.
Sun Jun 1 23:03:06 2008 Søren Sandmann <sandmann@redhat.com>
* profile.c (add_trace_to_tree): Do not fold recursions for
symbols starting with "In file".
* treeviewutils.c: Update copyright. Various formatting fixes.
2008-04-30 Owen Taylor <otaylor@redhat.com>
* module/sysprof-module.c: Reorder the tests for
CONFIG_X86 and CONFIG_X86_64 since post 2.6.26, they are
both defined on x86-64 machines.
2008-05-07 Soren Sandmann Pedersen <sandmann@daimi.au.dk>
* binfile.c (get_build_id_file): Fix bug where the build id name
was generated incorrectly.
Make a copy of the debug name, not the input name.
2008-04-26 Soren Sandmann <sandmann@daimi.au.dk>
* process.c (get_kernel_symbols): Don't leak kallsyms
* sysprof.c (gather_widgets): Don't leak the GladeXML
2008-04-26 Soren Sandmann <sandmann@daimi.au.dk>
* sysprof.c (build_gui): Get rid of all calls to
glade_xml_get_widget().
(gather_widgets): Instead get all the widgets here.
* TODO: Update
2008-04-26 Soren Sandmann <sandmann@daimi.au.dk>
* sysprof.c (build_gui): Remove all calls to g_signal_connect()
* sysprof.c (connect_signals): Instead connect all signals here
2008-04-26 Soren Sandmann <sandmann@daimi.au.dk>
* unwind.c: Add various constants
Mon Apr 21 15:54:24 2008 Søren Sandmann <sandmann@redhat.com>
* binfile.c: More build-id support
Sun Apr 20 16:55:47 2008 Søren Sandmann <sandmann@redhat.com>
* elfparser.c (elf_parser_new_from_data): Initial build-id support
2008-04-01 Owen Taylor <otaylor@redhat.com>
* sysprof.c (on_samples_label_size_request): Constrain the
samples label to only grow wider instead of bouncing around.
2008-03-29 Soren Sandmann <sandmann@daimi.au.dk>
Work around GTK+ ABI break.
* sysprof.c (on_about_activated): Use "program-name" instead of
"name" when the gtk+ minor version is >= 14.
2008-03-24 Soren Sandmann <sandmann@daimi.au.dk>
* collector.c (collect_traces): Call back after collecting all
traces.
* TODO: update
* process.c: Simpler code to find vmlinux
Sat Mar 29 11:14:38 2008 Søren Sandmann <sandmann@redhat.com>
* unwind.[ch], testunwind.c: Beginning of a dwarf unwinder.
Sat Mar 29 08:05:46 2008 Søren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c: x86 merge happened in 2.6.25
2008-03-23 Soren Sandmann <sandmann@daimi.au.dk>
* sysprof.c (queue_show_samples): Update samples immediately when
reset and start is clicked.
2008-03-20 Soren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (trace_kernel): Use kernel builtin
tracer instead of copying everything ourselves.
2008-03-20 Soren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c: Support for 2.6.24 and newer
2008-02-23 Soren Sandmann <sandmann@redhat.com>
* process.c (process_lookup_symbol): Initialize offset to 1. Don't
do kernel lookup for unmapped addresses.
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
2008-02-16 Soren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (nt_memcpy): Add a memcpy() that uses
nontemporal writes.
(copy_kernel_stack): Add commented-out use of it here.
2007-11-20 Soren Sandmann <sandmann@daimi.au.dk>
* binfile.c (find_separate_debug_file): Use hash table instead of
list.
2007-11-18 Soren Sandmann <sandmann@daimi.au.dk>
* module/sysprof-module.c (heuristic_trace): Make heuristic stack
scanning more accurate
Sun Nov 18 18:12:09 2007 Søren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (heuristic_trace): Crude heuristic stack
scanning on x86-64.
* module/sysprof-module.c (copy_kernel_stack): New function
Sun Nov 18 13:23:39 2007 Søren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (sysprof_read): Return ssize_t instead
of int.
* module/sysprof-module.c (heuristic_trace): Beginning of
heuristic user stack scanning.
2007-11-17 Soren Sandmann <sandmann@daimi.au.dk>
* collector.c (collector_create_profile): Don't collect traces here.
2007-11-16 Soren Sandmann <sandmann@daimi.au.dk>
* module/sysprof-module.c (n_traces_available): Formatting
* module/sysprof-module.c (sysprof_poll): Require 16 traces rather
than 8.
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.
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.
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
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.
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
2007-10-22 Soren Sandmann <sandmann@daimi.au.dk>
* elfparser.c (read_table): Don't discard weak symbols.
* elfparser.c (elf_parser_lookup_symbol): If the symbol has
unknown size, don't check that the address is in range.
2007-10-21 Soren Sandmann <sandmann@daimi.au.dk>
* module/Makefile: Remove CFLAGS reminiscence of 2.4 support.
2007-10-20 Soren Sandmann <sandmann@daimi.au.dk>
* collector.c (on_read): Call callback with an extra boolean
indicating whether the sample read was the first one
* collector.c (add_trace_to_stash): Allocate addresses on the
stack if possible.
* sysprof.c (on_new_sample): Only call update_sensitivity() on the
first sample.
* stackstash.c (stack_stash_add_trace): Move match to front
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.
2007-08-26 Soren Sandmann <sandmann@daimi.au.dk>
* profile.c (profile_get_size): Compute the size by simply summing
the size of the siblings. They are toplevel by definition, and
this works if the siblings for some reason has the same address.
2007-08-26 Soren Sandmann <sandmann@daimi.au.dk>
* treeviewutils.c (process_iter): Reformat and fix various minor
issues.
2007-08-25 Soren Sandmann <sandmann@daimi.au.dk>
* treeviewutils.c (tree_view_set_model_with_default_sort): Work
around GTK+ bug 405625.
2007-08-04 Soren Sandmann <sandmann@daimi.au.dk>
* sysprof.c: Update to use new tree view API.
* treeviewutils.c: Do customized sorting to get default sort
orders on columns. Workaround for GTK+ bug 333791.
2007-03-24 Soren Sandmann <sandmann@daimi.au.dk>
* elfparser.c (elf_parser_get_crc32): madvise()
2007-03-24 Soren Sandmann <sandmann@daimi.au.dk>
* sysprof.c (update_screenshot_window): Update screenshot window
in an idle handler to deal with the case where someone presses
"Shift Right Arrow"
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.
2007-03-02 Soren Sandmann <sandmann@daimi.au.dk>
* sysprof-text.c (dump_data): Make this function static
2007-03-02 Soren Sandmann <sandmann@daimi.au.dk>
* collector.c (collector_create_profile): Remove FIXME.
2007-03-02 Soren Sandman <sandmann@daimi.au.dk>
* process.c (free_process): Free the undefined symbol
2007-03-02 Soren Sandmann <sandmann@daimi.au.dk>
* process.c (process_get_vdso_bytes): Make a copy of the vdso
bytes to make valgrind a little quieter.
* binparser.c: Note to self: Save the file, *then* commit.
2007-03-02 Soren Sandmann <sandmann@daimi.au.dk>
Fix two leaks, both pointed out by Kjartan Maraas
* binparser.c (bin_parser_free): Free the record list
* elfparser.c (elf_parser_free): Free the symbol table.
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
2007-02-24 Soren Sandman <sandmann@daimi.au.dk>
* binparser.[ch]: Switch to a simpler conceptual model.
* elfparser.c: Update to binparser API changes.
* TODO: updates
Fri Feb 9 16:53:29 2007 Søren Sandmann <sandmann@redhat.com>
* Update copyright notices
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
Mon Jan 22 17:42:29 2007 Søren Sandmann <sandmann@redhat.com>
* sysprof-icon-32.png
* sysprof.c: Add a 32x32 version (also from Diana) of the icon.
Mon Jan 22 16:37:12 2007 Søren Sandmann <sandmann@redhat.com>
* sysprof-icon-16/24/48.png:
* sysprof.c: Add new icons from Diana.
2007-01-05 Behdad Esfahbod <behdad@gnome.org>
* module/Makefile: Correct $PWD usage, so make install works from
inside module/.
2006-12-09 Soren Sandmann <sandmann@daimi.au.dk>
* module/sysprof-module.c: Add forgotten put_cpu_var().
* sfile.c (build_instructions): Parse in chunks of 65536 to
improve locality.
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.
2006-11-22 Soren Sandmann <sandmann@daimi.au.dk>
* sfile.c (sfile_load): Use GMappedFile instead
g_file_get_contents().
(build_instructions): Pass length instead of -1.
(sfile_output_save): Use g_file_set_contents() instead of
cut-and-pasted copy.
2006-11-22 Soren Sandmann <sandmann@daimi.au.dk>
* profile.c (add_trace_to_tree): Move match to front
(add_trace_to_tree): Break as soon as a recursive call is found.
* stackstash.c (do_callback): Manual tail call optimization.
2006-11-20 Soren Sandmann <sandmann@daimi.au.dk>
* sysprof.c (ensure_profile): reset the collector after generating
the profile.
* stackstash.c (struct StackStash): Add cached_nodes and blocks.
(stack_node_new): Allocate stack nodes in blocks.
2006-11-19 Soren Sandmann <sandmann@redhat.com>
* profile.c (profile_load): Use stack allocated variables to avoid
taking addresses of bitfields.
* stackstash.h (struct StackNode): Store toplevel as bitfield
2006-11-19 Soren Sandmann <sandmann@redhat.com>
* profile.c (profile_load): Use stack_node_new() o
(profile_load): Use set_root() instead of new_from_root();
* stackstash.c (stack_stash_new_from_root): Delete this function
(stack_stash_set_root): Add this function
(stack_node_new): Export this function
2006-11-19 Soren Sandmann <sandmann@redhat.com>
* binparser.h: Declare bin_parser_free();
* elfparser.c (elf_parser_get_crc32): Use madvise(DONT_NEED) on
the file.
* process.c (struct Process): Remove do_offset.
Thu Nov 9 17:55:24 2006 Søren Sandmann <sandmann@redhat.com>
* TODO (-): udpate
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:17:11 2006 Søren Sandmann <sandmann@redhat.com>
* binfile.c: Add 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-11-02 Soren Sandmann <sandmann@daimi.au.dk>
* sysprof.c (disable_g_slice): New function
* sysprof.c (main): Call it from here.
2006-11-02 Soren Sandmann <sandmann@daimi.au.dk>
Valgrind:
* binparser.c (bin_parser_free): Add this function
* elfparser.c (elf_parser_free): Call bin_parser_free()
* sysprof.c (compute_text_width, add_text): Plug leaks
* collector.c (add_trace_to_stash): Copy n_addresses to a stack
variable instead of reading it out of the mmap'ed area all the
time. (That way if there is an overrun, we won't write too much
into the address array).
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-26 Soren Sandmann <sandmann@daimi.au.dk>
* collector.c (resolve_symbols): Combine processes with identical
commandlines here.
2006-10-25 Soren Sandmann <sandmann@daimi.au.dk>
* profile.c (add_trace_to_tree): Make the pointer array static to
improve cache behavior and reduce calls to malloc().
* process.c (lookup_kernel_symbol): Remove obsolete comment.
2006-10-25 Soren Sandmann <sandmann@daimi.au.dk>
* process.c (free_maps): Take a pointer to a variable that will be
set to 0.
* process.c: Stop coalescing processes with the same cmdline.
* TODO: updates.
2006-10-24 Soren Sandmann <sandmann@daimi.au.dk>
* process.c (page_size): replace PAGE_SIZE macro with this function.
* binfile.c: Remove obsolete comment.
2006-10-24 Soren Sandmann <sandmann@daimi.au.dk>
* process.c (struct Process): Use an array instead of list of
maps.
2006-10-23 Soren Sandmann <sandmann@daimi.au.dk>
* module/sysprof-module.c (init_module): Use PAGE_SIZE - 1 instead
of 4096.
2006-10-22 Soren Sandmann <sandmann@daimi.au.dk>
Communicate traces to userspace through shared memory instead of
copying.
* module/sysprof-module.c: Store the traces in a SysprofMmapArea.
(sysprof_mmap): Implement this method.
(sysprof_nopage): Implement this.
(sysprof_read): Just reset the tail pointer and return zero.
* module/sysprof-module.h (struct SysprofMmapArea): New
structure.
* collector.c (collector_stop): Unmap the device
(in_dead_period): New function
(on_read): Read the traces out of mmap()ed area instead of reading
them. Call read() to prevent poll() from firing.
(struct Collector): New members map_area and current.
* Makefile.am (insert-module): Prefix modprobe with /sbin
* collector.c (open_fd): mmap() the sysprof device.
2006-10-11 Soren Sandmann <sandmann@daimi.au.dk>
* profile.c (profile_list_callers): Skip nodes that don't have a
parent.
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 <sandmann@redhat.com>
* binfile.c (bin_file_get_inode): Remove this function
* binfile.c (bin_file_check_inode): New function. Only print inode
warning once per BinFile.
* process.c (process_get_vdso_bytes): Remove debug spew
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 <ssp@localhost.localdomain>
* binfile.c: Don't include bfd.h
2006-10-08 Soren Sandmann <sandmann@redhat.com>
* sysprof.c (process_options): New function to support --version option
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@redhat.com>
* elfparser.c: Remove now unused load-address heuristic
* comment out debug spew
2006-10-08 Soren Sandmann <sandmann@redhat.com>
* elfparser.c (read_symbols): Use "SHT_DYNSYM" for ".dynsym".
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-08 Soren Sandmann <sandmann@daimi.au.dk>
* Delete various debug spew
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-27 Soren Sandmann <sandmann@redhat.com>
* binparser.c: Remove old commented out code
* module/sysprof-module.c: Add commented out code accessing entire
stack.
2006-08-27 Soren Sandmann <sandmann@redhat.com>
* module/Makefile ($(MODULE).o): Add dependency on sysprof-module.h
* elfparser.c (elf_parser_get_eh_frame): Add this function.
Remove some commented out code.
Sat Aug 26 19:05:51 2006 Søren Sandmann <sandmann@redhat.com>
* Formatting fixes in header files.
2006-08-26 Soren Sandmann <sandmann@daimi.au.dk>
* elfparser.c: Update to new API
* binparser.h: Delete commented out declarations. Add new
functions.
* binparser.c: Delete ParserFrame, replace with one current
offset.
(convert_uint): Make static
(bin_parser_get_uint): Delete this function
(bin_parser_get_string): Change this function to use current
offset instead of frame offset.
(bin_parser_goto): New function
(bin_parser_align): New function
(bin_parser_get_uint32): New function
(bin_parser_begin): Delete this function
(bin_parser_end): Delete this function
(bin_parser_index): Delete this function
(bin_record_get_string_indirect): Make this function use _goto()
instead of _begin()/_end()
(bin_parser_get_offset): Make this function return current offset
2006-08-26 Soren Sandmann <sandmann@daimi.au.dk>
* binparser.[ch]: Add new struct BinRecord. Comment out functions
related to formats. Add new functions to get fields out of
BinRecords.
* elfparser.c: Update to new API.
2006-08-26 Soren Sandmann <sandmann@daimi.au.dk>
* binparser.h: Add new bin_record() functions
* binparser.c: Implement them.
2006-08-22 Soren Sandmann <sandmann@daimi.au.dk>
* collector.c (unique_dup): Demangle instead of strdup.
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-21 Soren Sandmann <sandmann@redhat.com>
* process.c (process_lookup_symbol): Pass map->bin_file to
bin_symbol_get_name.
* binfile.h (bin_symbol_get_name): Add BinFile parameter
* elfparser.c (elf_demangle): Use options DMGL_PARAMS | DMGL_ANSI
* TODO: Updates
* binfile.c: Rewrite this file to use ElfParser instead of libbfd.
* configure.ac: Drop dependencies on libbfd and libiberty.
2006-08-21 Soren Sandmann <sandmann@redhat.com>
* TODO: Update
* elfparser.c (elf_parser_lookup_symbol): Change sense of size
check.
2006-08-20 Soren Sandmann <sandmann@redhat.com>
* elfparser.c (elf_parser_get_crc32): Initialize crc to 0xffffffff
and invert it before returning.
* elfparser.h: Declare elf_parser_get_debug_link()
2006-08-20 Soren Sandmann <sandmann@daimi.au.dk>
* elfparser.c (elf_parser_get_load_address): Comment out debug spew.
(elf_parser_lookup_symbol): Add check that address is actually
within the bounds of the found function.
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@daimi.au.dk>
* elfparser.c (elf_parser_new_from_file): New function
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.
2006-08-20 Soren Sandmann <sandmann@redhat.com>
* elfparser.c (elf_sym_get_name): Read the name out of the file
instead of out of the struct.
* elfparser.c (struct ElfSym): Store an offset instead of the
name.
* elfparser.c (all_elf_parsers): Keep track of all elf parsers
created.
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
2006-08-19 Soren Sandmann <sandmann@redhat.com>
* elfparser.c: Many cleanups.
2006-08-16 Soren Sandmann <sandmann@redhat.com>
* testelf.c: Really add this file.
2006-08-15 Soren Sandmann <sandmann@redhat.com>
Add beginning of an ELF parser.
* binparser.[ch]: New files
* elfparser.[ch]: New files
* testelf.c: New file
* Makefile.am (testelf_SOURCES): Add new testelf program.
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
Fri Aug 11 11:41:15 2006 Søren Sandmann <sandmann@redhat.com>
* TODO: Updates
2006-08-08 Soren Sandmann <ssp@localhost.localdomain>
* sysprof.c (main): Make the load_file() idle low priority to
avoid weird toolbar flash.
* TODO, NEWS, README: updates.
2006-07-31 Paolo Borelli <pborelli@katamail.com>
* sysprof.c (expand_descendants_tree): small cleanup.
2006-07-31 Soren Sandmann <sandmann@redhat.com>
* stackstash.[ch]: Add a destroy notifier to StackStash
* collector.c (collector_create_profile): Pass g_free as destroy
notifier.
* collector.c (collector_reset): Pass NULL as destroy notifier
* profile.c (profile_load): Pass g_free here.
* profile.c (struct Profile): Remove unused "Node" typedef
* collector.c (resolve_symbols): Free the array here.
* TODO: various updates.
2006-07-30 Soren Sandmann <sandmann@redhat.com>
* signal-handler.c: Simplify this file a bit, and make it not rely
on atomic pointer writes.
2006-07-18 Bastien Nocera <hadess@hadess.net>
* configure.ac: we need at least glib 2.6.0 for the gstdio.h functions
2006-06-05 Soren Sandmann <sandmann@redhat.com>
* TODO: Updates
Sat Apr 22 15:08:01 2006 Soeren Sandmann <sandmann@redhat.com>
* TODO: updates
* profile.c, sfile.c, sformat.c: Various formatting fixes.
Wed Apr 5 11:26:30 2006 Søren Sandmann <sandmann@redhat.com>
* TODO: updates
Mon Mar 27 23:04:30 2006 Soeren Sandmann <sandmann@redhat.com>
* TODO: Updates.
* sfile.c (handle_{begin,end}_element): Don't generate begin/end
instructions for value elements.
* sfile.c (build_instructions): Remove debugging spew.
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.
Mon Mar 27 09:55:01 2006 Søren Sandmann <sandmann@redhat.com>
* TODO: updates
2006-03-11 Soren Sandmann <sandmann@redhat.com>
* TODO: updates
* stackstash.[ch]: Make stackstash refcounted
* collector.c, profile.c: Update for refcounted stackstash, plug
leak.
* collector.c (open_fd): Remove FIXME comment
2006-03-05 Soeren Sandmann <sandmann@redhat.com>
* sysprof-text.c, collector.c, sysprof.c: Do proper
error-handling.
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.
Thu Mar 2 22:54:37 2006 Soeren Sandmann <sandmann@redhat.com>
* treeviewutils.c (tree_view_foreach_visible): Handle NULL models.
* sysprof.glade, sysprof.c: Revert back to three pane layout.
2006-02-17 Bastien Nocera <hadess@hadess.net>
* configure.ac:
* module/sysprof-module.c: (timer_notify), (sysprof_open),
(sysprof_release): more ifdef's to make it work with Red Hat
Enterprise Linux 4's 2.6.9-based kernel
Sat Feb 4 23:53:05 2006 Søren Sandmann <sandmann@redhat.com>
* sysprof.glade: Remove ancestors pane in favor of radiobuttons in
the right pane.
* sysprof.c: Corresponding changes.
* TODO: Updates
Wed Jan 25 11:24:04 2006 Søren Sandmann <sandmann@redhat.com>
* TODO: Updates
Mon Jan 16 11:12:13 2006 Søren Sandmann <sandmann@redhat.com>
* TODO: Updates
Sun Jan 15 20:22:20 2006 Soeren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (init_module): Print out sysprof version
at module load time.
Sun Jan 15 00:24:02 2006 Soeren Sandmann <sandmann@redhat.com>
* TODO: Updates
* sysprof.c (build_gui): Rename 'callers' column 'ancestors'
* profile.c (profile_list_callers): Make this function list all
ancestors of the function. Also make it report correct numbers
again.
* profile.c (profile_create_descendants): Remove debug spew
Sat Jan 14 18:24:43 2006 Soeren Sandmann <sandmann@redhat.com>
* configure.ac, Makefile.am: Only build GUI when the necessary
dependencies are found.
* sysprof.c (compute_text_width): Remove unused variable
* profile.c (build_object_list): Follow next instead of siblings.
Fri Jan 13 23:11:33 2006 Søren Sandmann <sandmann@redhat.com>
* TODO: updates
Fri Jan 13 22:59:48 2006 Soeren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (sysprof_open): Initialize retval.
* module/sysprof-module.c (sysprof_read): Copy contents of trace,
not tail to the buffer.
Wed Jan 11 20:31:11 2006 Søren Sandmann <sandmann@redhat.com>
* process.c (read_maps): Also make offset a gulong (Samuel Mimram)
Wed Jan 11 17:51:54 2006 Søren Sandmann <sandmann@redhat.com>
* collector.c: Remove debug spew.
* TODO: updates
Mon Jan 9 09:58:25 2006 Soeren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (timer_notify): Remove START_OF_STACK
check.
Mon Jan 9 00:59:21 2006 Soeren Sandmann <sandmann@redhat.com>
* process.c (read_maps): Use gulong for addresses. Bug reported by
Martin Reddy.
Sun Jan 8 03:22:22 2006 Soeren Sandmann <sandmann@redhat.com>
* process.c (process_flush_caches): Resurrect this function.
* collector.c (collector_reset): Call it from here
Sun Jan 8 02:19:34 2006 Soeren Sandmann <sandmann@redhat.com>
* TODO: update
Thu Jan 5 17:52:10 2006 Søren Sandmann <sandmann@redhat.com>
* TODO: small updates
* sysprof.c: cosmetic updates
* module/sysprof-module.c: cosmetic updates
2005-12-20 Kristian Høgsberg <krh@redhat.com>
* module/sysprof-module.c: Remove left over debug print out and
add support for multiple clients (readers).
Tue Dec 20 16:03:29 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: Updates
* sysprof-text.c (main): Make it try and load the module before
complaining.
2005-12-20 Kristian Høgsberg <krh@redhat.com>
* Makefile.am: Dist and install udev rule.
* collector.c: (open_fd):
* sysprof-text.c: (no_module):
* sysprof.c: (on_start_toggled): Update device filename.
* 60-sysprof.rules: New udev rule file to set permissions for
sysprof char device.
* module/sysprof-module.c: Switch kernel module to use a misc char
device instead. Start and stop the timer on device open and
close instead of module load and unload.
Tue Dec 20 12:19:34 2005 Søren Sandmann <sandmann@redhat.com>
* configure.ac: Add backslashes, pointed out by Ralph Siemsen.
Mon Dec 19 17:39:09 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof.c (add_text): Make the tree tree-shapeed.
Mon Dec 19 15:15:48 2005 Søren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (timer_notify): A few formatting
fixes. Hopefully make it work with x86-64.
2005-11-29 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (on_descendants_row_expanded_or_collapsed): New
function. Update screenshot window when rows are expanded and
collapsed.
2005-11-23 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (update_screenshot_window): Update the screenshot
window.
Wed Nov 23 00:44:34 2005 Soeren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c: Various cleanups
* TODO: updates
Tue Nov 22 23:38:09 2005 Soeren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c: Remove unused pages_present()
function.
2005-11-18 Matthias Clasen <mclasen@redhat.com>
* configure.ac: Make configure work.
2005-11-13 Soeren Sandmann <sandmann@redhat.com>
* process.c: Add some experimental (and unused) code to look up
kernel symbols.
Sat Nov 12 23:39:29 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (set_sizes): Put the vertical splitter at 3/8 *
screen_width.
* configure.ac: Disable warning.
Sat Nov 12 19:44:43 2005 Søren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (read_frame): New function that uses
copy_from_user_inatomic() as check_user_pages_readable() has
disappeared in recent kernels.
* module/sysprof-module.c (timer_notify): Use it here.
* TODO: Updates
* configure.ac: Change the wording of the CVS HEAD warning as this
change seems to also have fixed the lockup with rawhide kernels.
Wed Nov 9 00:24:11 2005 Soeren Sandmann <sandmann@redhat.com>
* treeviewutils.[ch]: Add new tree_view_foreach_visible()
function.
* sysprof.c: Add update_screenshot_window() function.
Mon Nov 7 23:42:26 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c: Add beginning of a screenshot
window.
* sysprof.glade: Add screenshot window plus menu items.
* stackstash.c: Remove unused function stack_node_list_leaves()
* xmlstore.c: Various crack
Sun Nov 6 23:03:49 2005 Soeren Sandmann <sandmann@redhat.com>
* profile.c (add_trace_to_tree): Test for !prev instead of !next.
Sun Nov 6 Soeren Sandmann <sandmann@redhat.com>
* TODO: updates
* collector.c (on_read): Only call back when a new sample actually
arrived.
* collector.c (collector_stop): close the filedescriptor
* sysprof.c (on_start_toggled): Change sense of test.
* sysprof.c (ensure_profile): Stop the collector.
* sysprof.c (on_reset_clicked): Stop the collector when state
becomes INITIAL.
Sun Nov 6 18:31:23 2005 Soeren Sandmann <sandmann@redhat.com>
* stackstash.c (stack_stash_foreach):
* stackstash.c (stack_node_foreach_trace): Make these function
call back with GLists rather than GSLists.
* profile.c (add_trace_to_tree): Iterate backwards instead of
copying the list.
Sun Nov 6 17:06:52 2005 Soeren Sandmann <sandmann@redhat.com>
* profile.c (add_trace_to_tree): Turn this function into a
StackFunction.
* stackstash.c (stack_node_foreach_trace): Make this function take
a StackFunction, and reimplement with do_callback().
Sat Nov 5 18:06:40 2005 Soeren Sandmann <sandmann@redhat.com>
* profile.c (profile_create_descendants): Use callbacks from
stackstash.
* stackstash.c (stack_node_foreach_trace): New function
* stackstash.c (do_node_callback): New function
Sat Nov 5 12:39:33 2005 Soeren Sandmann <sandmann@redhat.com>
* profile.c (add_trace_to_tree): Don't compute the total field.
* profile.h (struct ProfileDescendant): Remove 'total' field.
* sysprof.c: Delete DESCENDANTS_TOTAL column and everything
related to it.
* profile.c: Remove commented out code
* sfile.c (handle_text): Don't copy the text
2005-11-04 Soren Sandmann <sandmann@redhat.com>
* collector.[ch]: Add copyright statement.
* collector.c (on_read): Handle time getting set backwards.
* collector.c: Remove unused empty_filedescriptor() function.
2005-11-03 Soren Sandmann <sandmann@redhat.com>
* configure.ac: Make the message about the kernel source package
more informative. Code from Kjetil Torgrim Homme.
* sysprof.c (on_start_toggled): Only delete the data if the
profiling can actually be started.
2005-11-01 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (on_start_toggled): Update GUI after showing error
message.
* sysprof.glade: Rename File menu Profiler, move
Start/Profile/Reset here, delete View menu.
Mon Oct 31 23:41:33 2005 Soeren Sandmann <sandmann@redhat.com>
* stackstash.h (struct StackNode): Add "total" field.
* stackstash.c (stack_stash_add_trace): Keep track of the
aggregate size.
* profile.c (profile_get_size): Sum the totals of the siblings
instead of all the children.
* profile.c (build_object_list): Correctly compute obj->self
* profile.c (profile_load): Don't ignore the node->total field.
* profile.c (serialize_call_tree): Save node->total instead of the
computed total
* profile.c (compute_total): Use n->total instead of computing it
from scratch.
* profile.c: Remove unused sum_children() function.
* TODO: Updates
* process.c (process_get_from_pid): Plug leak.
Mon Oct 31 21:36:37 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof.c (fill_main_list): free the profile objects.
* sysprof.c (struct Application): Remove unused variable.
Mon Oct 31 00:22:58 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (set_application_title): Use APPLICATION_NAME macro
* sysprof.c (load_file): Don't leak the FileOpenData
* TODO: updates
2005-10-30 Soren Sandmann <sandmann@redhat.com>
* configure.ac, Makefile.am: Don't link sysprof-text to gtk+.
2005-10-30 Soren Sandmann <sandmann@redhat.com>
* Merge stackstash-reorg branch into HEAD
2005-10-30 Soren Sandmann <sandmann@redhat.com>
* Makefile.am, sysprof.c, sysprof-text.c, collector.[ch]: Rename
profiler -> collector
2005-10-30 Soren Sandmann <sandmann@redhat.com>
* profile.c (profile_load): Reenable loading.
2005-10-30 Soren Sandmann <sandmann@redhat.com>
* profile.c (profile_save): Reenable saving.
Sat Oct 29 21:37:42 2005 Soeren Sandmann <sandmann@redhat.com>
* stackstash.c (stack_stash_foreach): Rename
stack_stash_foreach_reversed() to stack_stash_foreach(). Delete
the old, unused stack_stash_foreach().
* stackstash.h: Remove stack_stash_foreach_reversed().
* profiler.c: Use new name.
Sat Oct 29 18:37:37 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: Updates
Sat Oct 29 17:38:01 2005 Søren Sandmann <sandmann@redhat.com>
* stackstash.[ch]: Add stack_stash_get_root().
* profile.c (profile_get_size): Make this function work again.
Sat Oct 29 16:58:22 2005 Søren Sandmann <sandmann@redhat.com>
* profile.c: Delete all the obsolete stuff related to call tree.
* TODO: update
Sat Oct 29 16:52:32 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: Updates
* profile.c: Comment out a lot of unused stuff. Also temporarily
comment out loading and saving.
Sat Oct 29 16:45:34 2005 Søren Sandmann <sandmann@redhat.com>
* profile.c (compute_total): New function.
* profile.c (profile_list_callers): Port this function over to use
StackNodes instead.
Sat Oct 29 16:22:28 2005 Søren Sandmann <sandmann@redhat.com>
* profile.c (build_object_list): Make this function allocate
the ProfileObjects.
* stackstash.[ch]: Add stack_stash_foreach_by_address()
* profile.c (profile_get_objects): Use it here to reimplement
profile_get_objects() in terms of the stackstash.
Sat Oct 29 15:33:07 2005 Søren Sandmann <sandmann@redhat.com>
* profile.c (profile_new): Add stash field to profile.
* stackstash.[ch]: Add stack_node_list_leaves();
* profile.c (profile_create_descendants): Port this function over
to use StackNodes instead.
Sat Oct 29 14:43:00 2005 Søren Sandmann <sandmann@redhat.com>
Fix crash pointed reported by Rudi Chiarito.
* stackstash.c (stack_stash_add_trace): Just return if
n_addrs is 0.
* sysprof.c (on_read): Only trace if n_addresses != 0.
Sat Oct 29 03:47:03 2005 Soeren Sandmann <sandmann@redhat.com>
* profile.[ch], sysprof.c: Get rid of ProfileObject for callers
and descendants.
* TODO: updates.
Sat Oct 29 02:57:34 2005 Soeren Sandmann <sandmann@redhat.com>
* stackstash.[ch]: Export the StackNode struct, add new
nodes_by_data hashtable to StackStash object, keep track of
whether objects are toplevels.
* TODO: some updates.
Sat Oct 29 14:29:55 2005 Søren Sandmann <sandmann@redhat.com>
* README, TODO: updates
Fri Oct 14 11:44:43 2005 Søren Sandmann <sandmann@redhat.com>
* configure.ac: Add a warning about known bugs in the kernel
module in this branch.
* TODO: updates.
Tue Oct 11 22:40:24 2005 Soeren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (SAMPLES_PER_SECOND): Add back these
constants, but this time make sure we won't divide by 0 or
anything like that.
Mon Oct 10 22:50:57 2005 Soeren Sandmann <sandmann@redhat.com>
* Merge in changes from HEAD
Thu Oct 6 22:28:39 2005 Soeren Sandmann <sandmann@redhat.com>
* stackstash.c (do_callback): Call stack func if node->size > 0,
not if node->children != NULL
* stackstash.c (do_reversed_callback): same
* profile.c (generate_presentation_name): Delete this function
* profile.c (generate_key): Delete this function.
Wed Oct 5 23:57:08 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: Updates
* profile.c (generate_call_tree): Delete all the process stuff
* profile.c (node_add_trace): Delete process argument
* profile.c (lookup_profile_object): Don't generate a string key,
just use the address directly.
* profile.c (ensure_profile_object): Use the address as
presentation name.
* profiler.c (profiler_create_profile): Pass in the resolved
stash.
Sun Oct 2 21:08:16 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (on_delete): Work around glib bug 317775
* sysprof-text.c (signal_handler): Work around glib bug 317775
Sun Oct 2 16:31:37 2005 Soeren Sandmann <sandmann@redhat.com>
* stackstash.c (stack_stash_foreach_reversed): Add this function
* process.c: Add a per-process undefined symbol.
* profiler.c (resolve_symbols): Add code to do symbol resolution
here.
* TODO: Updates
Sat Oct 1 18:32:52 2005 Soeren Sandmann <sandmann@redhat.com>
* profile.h, sysprof.c: Remove some unnecessary includes.
Sat Oct 1 18:12:44 2005 Soeren Sandmann <sandmann@redhat.com>
* profiler.[ch]: Add profiler_get_n_samples(); add unused
empty_file_descriptor()
* profile.h: Add include guards
* process.[ch]: Delete process_flush_caches();
* helper.[ch]: Remove these files
* sysprof.c: Use the new profiler class.
* sysprof-text.c: Use the new profiler class
* Makefile.am: Various cleanups.
Sat Oct 1 17:05:43 2005 Soeren Sandmann <sandmann@redhat.com>
* profiler.[ch]: New files containing a profiler class with code
that can be shared between gui and command line.
* sysprof.c (main): Remove some commented out code
* stackstash.c (do_callback): Store the trace on the stack instead
of allocating it dynamically.
Sat Oct 1 01:50:15 2005 Soeren Sandmann <sandmann@redhat.com>
* stackstash.c (sstack_stash_add_trace): Simplify this function a
lot.
* helper.c: Include "process.h"
Sat Oct 1 01:29:06 2005 Soeren Sandmann <sandmann@redhat.com>
* profile.c (generate_object_table, generate_call_tree): Don't
take the process as an argument. Instead dig it out of the
stacktrace.
* helper.c (add_trace_to_stash): New file, that adds a stacktrace
and a process to a stackstash.
* stackstash.[ch]: Remove all traces of the concept of
Process. Simplify stack_node_add_trace() somewhat.
Mon Oct 10 22:49:03 2005 Soeren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c: Delete lots of commented-out code.
Mon Oct 10 14:33:50 2005 Søren Sandmann <sandmann@redhat.com>
* configure.ac: Add --disable-kernel-module option. Patch from
Pascal Terjan.
Mon Oct 10 13:00:20 2005 Robert Love <rml@novell.com>
* module/sysprof-module.c: Don't use INTERVAL or SAMPLES_PER_SECOND
now that we use register_timer_hook(), which hits off the timer
interrupt at HZ freqency (1/250 second on x86).
Sat Oct 1 01:21:57 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: Update
Wed Sep 28 12:08:32 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof-text.c: Add my name to the copyright statement
Tue Sep 27 01:33:33 2005 Soeren Sandmann <sandmann@redhat.com>
* process.c (process_lookup_symbol): If the address is 0x01, treat
as kernel, regardless of whether we have a map for that address or
not.
* module/sysprof-module.c (timer_notify): Take a stack trace of
the current process, even when we are in kernel mode. This way we
can assign kernel activity to individual user space stacktraces.
* TODO: updates.
Sat Sep 24 14:41:23 2005 Soeren Sandmann <sandmann@redhat.com>
* configure.ac: Bump version number to 1.1.0
* signal-handler.c: Many, mostly cosmetic, cleanups
* sysprof-text.c: uninstall signal handlers when exiting
Sat Sep 24 00:01:42 2005 Soeren Sandmann <sandmann@redhat.com>
* Nakefile.am, sysprof-text.c: New non-GUI version, written
by Lorenzo Colitti, with some changes by me.
* signal-handler.[ch]: New files that provide a way to get UNIX
signals into a glib main loop.
* README: add Lorenzo to credits
Fri Sep 23 20:46:40 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (build_gui): If the glade file doesn't exists pop up
an alert suggesting running 'make install'
* sysprof.c: Remove some commented out code
Sat Sep 17 14:35:32 2005 Soeren Sandmann <sandmann@redhat.com>
* Release 1.0 (this comment was added post facto)
* Bump version numbers
* README: update
* TODO: Updates
Sun Sep 4 19:38:51 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: Updates
Tue Aug 30 16:57:33 2005 Søren Sandmann <sandmann@redhat.com>
* configure.ac: Complain if we can't find /lib/modules/`uname
-r`/build/Makefile.
* process.c (process_lookup_symbol): Take an address of 0x1 to
mean "in kernel".
* module/sysprof-module.c (timer_notify): When reporting in-kernel
time, give the current pid instead of -1.
* TODO: updates
Mon Aug 15 20:39:11 2005 Soeren Sandmann <sandmann@redhat.com>
* binfile.c, process.c, profile.c: Fix some warnings.
Mon Aug 1 23:49:51 2005 Soeren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (REG_INS_PTR): Add support for
amd64/x86-64. Patch from Mike Frysinger.
Sun Jul 10 10:51:52 2005 Soeren Sandmann <sandmann@redhat.com>
* binfile.c: Various minor clean-ups
Sat Jul 9 23:20:39 2005 Soeren Sandmann <sandmann@redhat.com>
* binfile.c (bin_file_new): Cache BinFiles by filename.
* stackstash.c (stack_stash_free): Plug leak
* process.c (process_free_maps): Plug leak
* module/Makefile (install): Check that depmod exists before
running it.
Sun Jun 19 15:42:34 2005 Søren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c (SAMPLES_PER_SECOND): Set to 200.
* sysprof.c (on_about_activated): Add version information
* configure.ac: Bump version to 0.91
* README: Updates
Sat Jun 18 22:45:04 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: Updates
* configure.ac: Check for Linux 2.6.11
* process.c (get_pidname): Present pid=-1 as [kernel].
* module/sysprof-module.c: Use register_timer_hook() instead of
a kernel timer. Set trace.pid to -1 if interrupt happens in
kernel.
Sun Jun 12 20:30:37 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (build_gui): Disable type-ahead search for all the
tree views.
* sysprof.c (on_object_selection_changed): Call it from here
* sysprof.c (expand_descendants_tree): New function that
determines what nodes to expand in the descendatns view.
Sun Jun 12 13:37:15 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: Updates
Thu Jun 9 13:28:33 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: Updates
Thu May 26 01:10:45 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (on_callers_row_activated): Grab focus on the callers
view, not the descendants view.
* sysprof.c (on_read): Add a short "dead" period after a reset,
so that 'samples' will actually be 0 for a while.
Mon May 23 01:37:26 2005 Soeren Sandmann <sandmann@redhat.com>
* README: Remove comment about auto* stuff, link to
http://www.daimi.au.dk/~sandmann/sysprof/
Sun May 23 16:10:00 2005 Soeren Sandmann <sandmann@redhat.com>
-=-=-=-=-=- Release v. 0.9 -=-=-=-=-=-
Sun May 22 21:06:36 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: Updates
Sat May 21 20:58:59 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: update
* sysprof.c (on_menu_item_activated): New function.
* sysprof.c (build_gui): Hook up menu items.
* module/sysprof-module.c (init_module): Remove module_init/exit
as they cause build failure on kernels < 2.6.11.
Sat May 21 00:59:38 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: update
Wed May 18 22:21:52 2005 Søren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c: Remove ref-counting since it didn't
actually do any good.
* sysprof.c (load_module): Use g_spawn_command_line_sync() instaed
of system().
Sun May 15 11:56:30 2005 Søren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c: First attempt at making module robust
agains unloading when in use.
Sun May 15 10:24:09 2005 Soeren Sandmann <sandmann@redhat.com>
* Makefile.am, module/Makefile: Do more-or-less what the automake
manual suggests about foreign subdirectories.
Sat May 14 16:36:32 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof.c (set_application_title): Update the title bar on
load/save
* treeviewutils.c, sfile.c: Fix compiler warnings
* Makefile.am: define PIXMAPDIR
Sat May 14 15:49:52 2005 Søren Sandmann <sandmann@redhat.com>
Auto*ify.
* TODO: updates
* AUTHORS, INSTALL, Makefile.am, NEWS, configure.ac: New files
* module/Makefile: New file
* module/sysprof-module.c, module/sysprof-module.h: Move these
files to their own directy, as the kernel build system does not
work very well with auto*.
* sysprof.c, autogen.sh: Some auto* changes.
Sun May 8 16:31:32 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: more updates
* sysprof.c: Try loading the module before complaining
Sun May 8 15:45:08 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof-module.c (do_generate): Restore lost wake_up().
* sfile.c: Comment out use of bz2.
* Makefile: Add an install target. Add GLADE_DIR and PIXMAP_DIR
* sysprof.c (build_gui): use GLADE_DIR and PIXMAP_DIR here.
* TODO: Updates.
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
Fri May 6 23:38:48 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof-module.c (do_generate): Another desparate hack to try
and prevent the oops.
Sat Apr 30 16:57:23 2005 Soeren Sandmann <sandmann@redhat.com>
* process.c (PAGE_SIZE): Use getpagesize()
* TODO: More updates
Sat Apr 30 15:44:12 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: Updates
* sysprof-module.c (get_regs): Change the way we get registers for
a task so that it works with 2.6.11
Sat Apr 23 19:17:18 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: Updates
Sat Apr 23 19:12:52 2005 Søren Sandmann <sandmann@redhat.com>
* profile.c: Store a pointer to the root of the call tree
* profile.c (profile_load): Call sfile_input_free()
* sfile.c (sformat_free): Implement this function
Sat Apr 23 18:38:46 2005 Søren Sandmann <sandmann@redhat.com>
* sfile.c (post_process_read_instructions): Check pointer types
* sfile.c (post_process_instructions_recurse): Delete this unused function
Sat Apr 23 17:49:33 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof-module.c (page_readable): New function to check if the
page is readable before reading. Noop on kernel <= 2.6.11
* sysprof-module.c (get_mm, put_mm): New functions to confine
#ifdefs.
Sat Apr 23 17:48:22 2005 Søren Sandmann <sandmann@redhat.com>
* Makefile (MODCFLAGS): Disable optimization as I suspect
the oops is related to miscompilation.
Fri Apr 22 00:09:16 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof-module.c (read_user_space): On >= 2.6.11 check that the
pages are present and readable before reading them.
Tue Apr 19 23:26:45 2005 Kristian Høgsberg <krh@bitplanet.net>
* Makefile (check): Add simple check target that runs a sanity
check of the build environment.
Sun Apr 17 00:20:41 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (on_open_clicked): Factor out some stuff in their own
functions.
* sysprof.c (load_file): Idle handler to load files given on the
command line.
* sysprof.c (main): If a filename is passed on the command line,
load it in an idle handler.
Sun Apr 17 00:19:03 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: Updates
Sat Apr 16 19:51:48 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof-module.c (read_user_space): Read a whole page at a time.
Sat Apr 16 14:15:55 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: Update
* sysprof-module.c (x_access_process_vm): On kernel 2.6.9 and
later use get_task_mm()/mmput() instead of directly accessing
task->mm.
Sat Apr 16 01:54:18 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: Add backtrace for kernel oops.
Fri Apr 15 16:37:45 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: updates
* sysprof.c (sorry): If you hit profile when the module isn't
loaded, pop up an annoying dialog.
* sysprof-module.c: Clean-ups, remove various unused abstractions.
Sat Apr 9 17:49:13 2005 Søren Sandmann <sandmann@redhat.com>
* COPYING: Add a copy of the GPL
Sat Apr 9 17:04:50 2005 Søren Sandmann <sandmann@redhat.com>
* Makefile: Remove debug spew
* *: Add copyright notices
Fri Apr 8 21:30:02 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: More updates
Fri Apr 8 20:48:58 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof.c (build_gui): Load the icon, hook up "about"
activation.
* sysprof.c (on_about_activated): New function. Show an about
dialog.
* sysprof.c (struct Application): Add an icon field
* TODO: Updates
* sysprof-icon.png: Icon, drawn by Diana Fong
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
Tue Apr 5 14:34:43 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof-module.c (x_access_process_vm): Make it compile with
kernel 2.6.11
* TODO: updates
Mon Apr 4 00:57:11 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c: Busy cursors in many more places.
* TODO: updates
Sun Apr 3 23:28:45 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof-module.c (do_generate): Re-schedule the timeout here
instead of in on_timer().
* sysprof-module.c (on_timer): Only block tasks in the
TASK_RUNNING state.
Sun Apr 3 17:03:33 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof-module.c (queue_generate_stack_trace): Put current
process to sleep.
* sysprof-module.c (do_generate): Wake up the traced process
Thu Mar 31 23:09:09 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (build_gui): Remove stray %
Thu Mar 31 21:18:13 2005 Søren Sandmann <sandmann@redhat.com>
* treeviewutils.c (add_double_format_column): Right justify numbers
* sysprof.c (build_gui): Add a space after the numbers
* sysprof.c (on_callers_row_activated): Focus object view
* sysprof.c (on_descendants_row_activated): Focus new descendants
tree.
Thu Mar 31 19:51:51 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof-module.c (do_generate): Walk all threads, not just all
processes.
* TODO: Add disk profiling ideas
Thu Mar 31 00:19:47 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof.c (set_busy): Make this function work
* sysprof.c (on_profile_toggled): Use it here
* sysprof.c (on_object_selection_changed): And here
* profile.c (add_trace_to_tree): Use GPtrArrays instead of
GHashTable and GList.
Mon Mar 28 11:09:02 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: updates
Sat Mar 26 19:26:52 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof.c: Show the right number of samples afte Open; remove
shadows from menu bars and toolbars; some other tweaks.
Sat Mar 26 11:26:00 2005 Soeren Sandmann <sandmann@redhat.com>
* TODO: Updates
* sfile.c (add_string): Use g_markup_escape_text() to escape the
string before adding it to the file.
* sysprof.c (empty_file_descriptor): New function to make sure
samples generated before profiling started are ignored.
(set_busy): New commented out function to set a busy cursor.
Fri Mar 25 21:31:08 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof.c (update_sensitivity): Comment out sensitivity of reset button.
Fri Mar 25 21:25:31 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof.c (get_current_object): Return NULL if nothing is
selected.
Fri Mar 25 20:54:08 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: More updates
Fri Mar 25 20:25:44 2005 Søren Sandmann <sandmann@redhat.com>
* README: Require gtk+ 2.6
* treeviewutils.c (add_plain_text_column): Ellipsisize text columns.
Fri Mar 25 19:39:24 2005 Søren Sandmann <sandmann@redhat.com>
* TODO: Remove "loading and saving"
* sysprof.glade: Add ellipsises to Open and Save menu items.
* sysprof.c (overwrite_file): Add this function, cutted-and-pasted
from evince.
* sysprof.c (on_save_as_clicked, on_open_clicked): Use
GtkFileChoosers to pick the names.
* sysprof.c: Various GUI updates.
Fri Mar 25 19:36:28 2005 Søren Sandmann <sandmann@redhat.com>
* sfile.c (bz2_compress): Add this function Don't actually make
any produce use of it.
* profile.c (make_hash_table): Get rid of warning
Thu Mar 24 19:09:33 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof.c: Various GUI updates
* TODO: update
* sfile.[ch] (sformat_new_optional): Add some notes about an
"optional" construction.
Wed Mar 23 00:04:07 2005 Soeren Sandmann <sandmann@redhat.com>
Primitive loading and saving.
* sysprof.c (on_open_clicked): Hook up loading.
* sfile.c: Add a copy of g_file_replace() from glib CVS HEAD.
* sfile.c (add_string): Escape and quote the string
* sfile.c (sfile_load): Initialize current_instruction and
instructions_by_location
* sfile.c (post_process_instructions_recurse): Handle NULL
pointers properly.
* sfile.c (handle_begin_element, handle_end_element, handle_text):
Move error handling here from state_transition_begin/text/end.
* sfile.c (handle_text): Discard whitespace-only strings
* sfile.c (sfile_get_pointer, sfile_get_integer,
sfile_get_string): expect both begin, value, and end transitions.
* sfile.c (hook_up_pointers): Only treat instructions as pointer
values when they are. Handle NULL targets properly.
* sfile.c (get_number): Fix a few read-freed-data bugs
* profile.c (profile_load): Call sfile_end_get() for the profile;
build the nodes_by_objects hash table. Build the call tree.
* profile.c (create_format): Don't store next pointer, but do
store total, self and toplevel.
* profile.c (make_hash_table): New function to build
nodes_by_object hashtable from loaded data
Sat Mar 12 11:05:19 2005 Soeren Sandmann <sandmann@redhat.com>
* sysprof-module.c: Fix small bug in add_timeout()
* sysprof.c (build_gui): More descriptive tree labels
* TODO: update
Thu Mar 10 16:37:52 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof.c (build_gui): s/Cummulative/Cumulative/. Pointed out by
Ian McIntosh.
Mon Mar 7 14:47:09 2005 Søren Sandmann <sandmann@redhat.com>
* README: Add note that you need to compile the module with
the same compiler that compiled the kernel.
Sun Mar 6 22:56:21 2005 Soeren Sandmann <sandmann@redhat.com>
* sfile.c: Generate id's for objects and pointers.
Sat Mar 5 01:09:33 2005 Soeren Sandmann <sandmann@redhat.com>
* sfile.c: Bug fixes. Add actual generation.
Fri Mar 4 13:47:13 2005 Søren Sandmann <sandmann@redhat.com>
* sysprof.c: Remove include of non-existing tracing.h
Thu Mar 3 23:48:13 2005 Soeren Sandmann <sandmann@redhat.com>
* profile.c (profile_load): Write this function.
* sfile.c: Add support for user defined record and list types.
Simplify logic a lot.
Wed Mar 2 23:39:50 2005 Soeren Sandmann <sandmann@redhat.com>
* profile.[ch], sfile.[ch]: Experiment with a
file-format-description format.
* sysprof.c: Add commented out code using /proc/ based
timeout.
Fri Jan 21 11:23:54 2005 Søren Sandmann <sandmann@redhat.com>
* README: Some updates - add note about SMP kernels.
* sysprof-module.c: Go back to just sampling the current
process.
* ChangeLog: I guess these do make sense, so start one.