Søren Sandmann Pedersen [Tue, 30 Oct 2007 01:48:27 +0000 (01:48 +0000)]
Update TODO
svn path=/trunk/; revision=386
Soren Sandmann [Thu, 25 Oct 2007 02:45:54 +0000 (02:45 +0000)]
Use an array instead of a list. Look for vmlinux in the source directory.
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
Soren Sandmann [Mon, 22 Oct 2007 14:11:01 +0000 (14:11 +0000)]
Make this a two-pass algorithm, one pass to add the trace, and one to do
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
Soren Sandmann [Mon, 22 Oct 2007 13:48:30 +0000 (13:48 +0000)]
Fix some spelling errors
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
Søren Sandmann Pedersen [Mon, 22 Oct 2007 04:41:58 +0000 (04:41 +0000)]
Add ChangeLog
svn path=/trunk/; revision=382
Soren Sandmann [Mon, 22 Oct 2007 04:41:27 +0000 (04:41 +0000)]
Don't discard weak symbols.
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.
svn path=/trunk/; revision=381
Søren Sandmann Pedersen [Sun, 21 Oct 2007 22:24:47 +0000 (22:24 +0000)]
Add notes about releasing
svn path=/trunk/; revision=380
Soren Sandmann [Sun, 21 Oct 2007 21:35:39 +0000 (21:35 +0000)]
Remove CFLAGS reminiscence of 2.4 support.
2007-10-21 Soren Sandmann <sandmann@daimi.au.dk>
* module/Makefile: Remove CFLAGS reminiscence of 2.4 support.
svn path=/trunk/; revision=375
Soren Sandmann [Sat, 20 Oct 2007 23:51:35 +0000 (23:51 +0000)]
Call callback with an extra boolean indicating whether the sample read was
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
svn path=/trunk/; revision=373
Soren Sandmann [Mon, 17 Sep 2007 01:43:07 +0000 (01:43 +0000)]
Add support for looking up kernel symbols from /proc/kallsyms
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
Soren Sandmann [Sun, 26 Aug 2007 05:41:59 +0000 (05:41 +0000)]
Compute the size by simply summing the size of the siblings. They are
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.
svn path=/trunk/; revision=371
Soren Sandmann [Sun, 26 Aug 2007 04:27:08 +0000 (04:27 +0000)]
Reformat and fix various minor issues.
2007-08-26 Soren Sandmann <sandmann@daimi.au.dk>
* treeviewutils.c (process_iter): Reformat and fix various minor
issues.
svn path=/trunk/; revision=370
Soren Sandmann [Sun, 26 Aug 2007 04:06:44 +0000 (04:06 +0000)]
Work around GTK+ bug 405625.
2007-08-25 Soren Sandmann <sandmann@daimi.au.dk>
* treeviewutils.c (tree_view_set_model_with_default_sort): Work
around GTK+ bug 405625.
svn path=/trunk/; revision=369
Søren Sandmann Pedersen [Sun, 26 Aug 2007 03:55:15 +0000 (03:55 +0000)]
TODO updates
svn path=/trunk/; revision=368
Søren Sandmann Pedersen [Sat, 11 Aug 2007 23:08:58 +0000 (23:08 +0000)]
Update TODO
svn path=/trunk/; revision=367
Søren Sandmann Pedersen [Sat, 11 Aug 2007 23:06:08 +0000 (23:06 +0000)]
Update TODO
svn path=/trunk/; revision=366
Søren Sandmann Pedersen [Wed, 8 Aug 2007 14:40:48 +0000 (14:40 +0000)]
Add MAINTAINERS
svn path=/trunk/; revision=365
Soren Sandmann [Sat, 4 Aug 2007 19:54:17 +0000 (19:54 +0000)]
Update to use new tree view API.
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 GTK+ bug 333791.
svn path=/trunk/; revision=364
Soren Sandmann [Sat, 24 Mar 2007 17:56:20 +0000 (17:56 +0000)]
+ * elfparser.c (elf_parser_get_crc32): madvise()
2007-03-24 Soren Sandmann <sandmann@daimi.au.dk>
+ * elfparser.c (elf_parser_get_crc32): madvise()
svn path=/trunk/; revision=363
Soren Sandmann [Sat, 24 Mar 2007 17:53:43 +0000 (17:53 +0000)]
Update screenshot window in an idle handler to deal with the case where
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"
svn path=/trunk/; revision=362
Søren Sandmann [Mon, 5 Mar 2007 21:53:57 +0000 (21:53 +0000)]
New function. Only warn once about bad CRC's.
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
Soren Sandmann [Fri, 2 Mar 2007 06:36:34 +0000 (06:36 +0000)]
Make this function static
2007-03-02 Soren Sandmann <sandmann@daimi.au.dk>
* sysprof-text.c (dump_data): Make this function static
svn path=/trunk/; revision=360
Soren Sandmann [Fri, 2 Mar 2007 06:30:42 +0000 (06:30 +0000)]
Remove FIXME.
2007-03-02 Soren Sandmann <sandmann@daimi.au.dk>
* collector.c (collector_create_profile): Remove FIXME.
svn path=/trunk/; revision=359
Soren Sandman [Fri, 2 Mar 2007 06:27:05 +0000 (06:27 +0000)]
Free the undefined symbol
2007-03-02 Soren Sandman <sandmann@daimi.au.dk>
* process.c (free_process): Free the undefined symbol
svn path=/trunk/; revision=358
Soren Sandmann [Fri, 2 Mar 2007 06:21:37 +0000 (06:21 +0000)]
Make a copy of the vdso bytes to make valgrind a little quieter.
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.
svn path=/trunk/; revision=357
Soren Sandmann [Fri, 2 Mar 2007 05:23:30 +0000 (05:23 +0000)]
Fix two leaks, both pointed out by Kjartan Maraas
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.
svn path=/trunk/; revision=356
Søren Sandmann Pedersen [Sun, 25 Feb 2007 04:15:51 +0000 (04:15 +0000)]
svn path=/trunk/; revision=355
svn path=/trunk/; revision=355
Soren Sandmann [Sat, 24 Feb 2007 08:49:51 +0000 (08:49 +0000)]
Updates
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
Søren Sandmann Pedersen [Sat, 24 Feb 2007 08:35:48 +0000 (08:35 +0000)]
include correct header file
svn path=/trunk/; revision=353
Soren Sandman [Sat, 24 Feb 2007 07:15:24 +0000 (07:15 +0000)]
Switch to a simpler conceptual model. Update to binparser API changes.
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
svn path=/trunk/; revision=352
Søren Sandmann Pedersen [Fri, 9 Feb 2007 22:04:45 +0000 (22:04 +0000)]
svn path=/trunk/; revision=351
svn path=/trunk/; revision=351
Søren Sandmann [Fri, 9 Feb 2007 21:59:15 +0000 (21:59 +0000)]
Update copyright notices
Fri Feb 9 16:53:29 2007 Søren Sandmann <sandmann@redhat.com>
* Update copyright notices
svn path=/trunk/; revision=350
Søren Sandmann [Fri, 9 Feb 2007 21:30:01 +0000 (21:30 +0000)]
Don't store the size of the symbol. (elf_parser_lookup_symbol): Look it up
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
Søren Sandmann [Mon, 22 Jan 2007 22:48:33 +0000 (22:48 +0000)]
sysprof-icon-32.png Add a 32x32 version (also from Diana) of the icon.
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.
svn path=/trunk/; revision=348
Søren Sandmann Pedersen [Mon, 22 Jan 2007 21:43:36 +0000 (21:43 +0000)]
Add new icons
svn path=/trunk/; revision=347
Behdad Esfahbod [Fri, 5 Jan 2007 21:39:25 +0000 (21:39 +0000)]
Correct $PWD usage, so make install works from inside module/.
2007-01-05 Behdad Esfahbod <behdad@gnome.org>
* module/Makefile: Correct $PWD usage, so make install works from
inside module/.
svn path=/trunk/; revision=346
Søren Sandmann Pedersen [Sun, 10 Dec 2006 02:20:08 +0000 (02:20 +0000)]
file announce-1.0.8 was initially added on branch sysprof-1-0.
Soren Sandmann [Sat, 9 Dec 2006 06:29:43 +0000 (06:29 +0000)]
Add forgotten put_cpu_var(). Parse in chunks of 65536 to improve locality.
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.
Soren Sandmann [Thu, 23 Nov 2006 08:03:02 +0000 (08:03 +0000)]
Set inode for vdso to 0.
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.
Soren Sandmann [Thu, 23 Nov 2006 03:32:04 +0000 (03:32 +0000)]
Use GMappedFile instead g_file_get_contents(). (build_instructions): Pass
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.
Soren Sandmann [Wed, 22 Nov 2006 07:06:04 +0000 (07:06 +0000)]
Move match to front (add_trace_to_tree): Break as soon as a recursive call
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.
Soren Sandmann [Mon, 20 Nov 2006 07:25:02 +0000 (07:25 +0000)]
reset the collector after generating the profile.
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.
Soren Sandmann [Mon, 20 Nov 2006 04:11:21 +0000 (04:11 +0000)]
Use stack allocated variables to avoid taking addresses of bitfields.
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
Soren Sandmann [Mon, 20 Nov 2006 04:08:01 +0000 (04:08 +0000)]
Use stack_node_new() o (profile_load): Use set_root() instead of
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
Soren Sandmann [Sun, 19 Nov 2006 22:48:28 +0000 (22:48 +0000)]
Declare bin_parser_free();
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.
Søren Sandmann Pedersen [Thu, 16 Nov 2006 14:40:59 +0000 (14:40 +0000)]
file announce-1.0.7 was initially added on branch sysprof-1-0.
Soren Sandmann [Sat, 11 Nov 2006 03:34:40 +0000 (03:34 +0000)]
New function
2006-11-02 Soren Sandmann <sandmann@daimi.au.dk>
* sysprof.c (disable_g_slice): New function
* sysprof.c (main): Call it from here.
Søren Sandmann [Thu, 9 Nov 2006 22:55:53 +0000 (22:55 +0000)]
udpate
Thu Nov 9 17:55:24 2006 Søren Sandmann <sandmann@redhat.com>
* TODO (-): udpate
Søren Sandmann [Thu, 9 Nov 2006 22:32:22 +0000 (22:32 +0000)]
Start with "/usr", not "usr". Pointed out by Tim Rowley.
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.
Søren Sandmann [Thu, 9 Nov 2006 21:56:28 +0000 (21:56 +0000)]
Look in the correct directory for debug info files. (Tim Rowley)
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.
Søren Sandmann [Thu, 9 Nov 2006 21:17:59 +0000 (21:17 +0000)]
Add debug spew.
Thu Nov 9 16:17:11 2006 Søren Sandmann <sandmann@redhat.com>
* binfile.c: Add debug spew.
Søren Sandmann [Thu, 9 Nov 2006 21:02:31 +0000 (21:02 +0000)]
Die immediately if the output file is a directory.
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.
Soren Sandmann [Thu, 2 Nov 2006 08:33:35 +0000 (08:33 +0000)]
Valgrind:
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).
Soren Sandmann [Thu, 2 Nov 2006 06:54:12 +0000 (06:54 +0000)]
Increase the max number of addresses to 1021, reorganise SysprofMmapArea
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
Søren Sandmann Pedersen [Mon, 30 Oct 2006 03:21:45 +0000 (03:21 +0000)]
file announce-1.0.5 was initially added on branch sysprof-1-0.
Søren Sandmann Pedersen [Mon, 30 Oct 2006 01:06:46 +0000 (01:06 +0000)]
file announce-1.0.4 was initially added on branch sysprof-1-0.
Soren Sandmann [Thu, 26 Oct 2006 05:49:01 +0000 (05:49 +0000)]
Combine processes with identical commandlines here.
2006-10-26 Soren Sandmann <sandmann@daimi.au.dk>
* collector.c (resolve_symbols): Combine processes with identical
commandlines here.
Soren Sandmann [Thu, 26 Oct 2006 05:13:16 +0000 (05:13 +0000)]
Make the pointer array static to improve cache behavior and reduce calls
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.
Søren Sandmann Pedersen [Wed, 25 Oct 2006 04:47:34 +0000 (04:47 +0000)]
Incomplete changelog
Søren Sandmann Pedersen [Wed, 25 Oct 2006 04:47:06 +0000 (04:47 +0000)]
+2006-10-25 Soren Sandmann <sandmann@daimi.au.dk> + + * process.c
+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.
+
Soren Sandmann [Wed, 25 Oct 2006 02:02:44 +0000 (02:02 +0000)]
replace PAGE_SIZE macro with this function.
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.
Soren Sandmann [Tue, 24 Oct 2006 04:00:59 +0000 (04:00 +0000)]
Use an array instead of list of maps.
2006-10-24 Soren Sandmann <sandmann@daimi.au.dk>
* process.c (struct Process): Use an array instead of list of
maps.
Soren Sandmann [Mon, 23 Oct 2006 13:02:40 +0000 (13:02 +0000)]
Use PAGE_SIZE - 1 instead of 4096.
2006-10-23 Soren Sandmann <sandmann@daimi.au.dk>
* module/sysprof-module.c (init_module): Use PAGE_SIZE - 1 instead
of 4096.
Soren Sandmann [Mon, 23 Oct 2006 03:46:25 +0000 (03:46 +0000)]
Communicate traces to userspace through shared memory instead of copying.
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.
Soren Sandmann [Thu, 12 Oct 2006 03:45:21 +0000 (03:45 +0000)]
Skip nodes that don't have a parent.
2006-10-11 Soren Sandmann <sandmann@daimi.au.dk>
* profile.c (profile_list_callers): Skip nodes that don't have a
parent.
Soren Sandmann [Wed, 11 Oct 2006 05:37:24 +0000 (05:37 +0000)]
Make this function return a list of immediate callers again.
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.
Søren Sandmann Pedersen [Tue, 10 Oct 2006 00:52:44 +0000 (00:52 +0000)]
+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
+
Soren Sandmann [Mon, 9 Oct 2006 21:32:24 +0000 (21:32 +0000)]
New function.
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.
Soren Sandmann [Mon, 9 Oct 2006 02:25:46 +0000 (02:25 +0000)]
Don't include bfd.h
2006-10-08 Soren Sandmann <sandmann@daimi.au.dk>
* binfile.c: Don't include bfd.h
Soren Sandmann [Sun, 8 Oct 2006 22:05:47 +0000 (22:05 +0000)]
New function to support --version option
2006-10-08 Soren Sandmann <sandmann@redhat.com>
* sysprof.c (process_options): New function to support --version option
Soren Sandmann [Sun, 8 Oct 2006 20:14:25 +0000 (20:14 +0000)]
Add a cache of the text section.
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
Soren Sandmann [Sun, 8 Oct 2006 18:50:10 +0000 (18:50 +0000)]
Remove now unused load-address heuristic
2006-10-08 Soren Sandmann <sandmann@redhat.com>
* elfparser.c: Remove now unused load-address heuristic
* comment out debug spew
Soren Sandmann [Sun, 8 Oct 2006 18:09:17 +0000 (18:09 +0000)]
Use "SHT_DYNSYM" for ".dynsym".
2006-10-08 Soren Sandmann <sandmann@redhat.com>
* elfparser.c (read_symbols): Use "SHT_DYNSYM" for ".dynsym".
Soren Sandmann [Sun, 8 Oct 2006 17:45:09 +0000 (17:45 +0000)]
Support _debuglink recursions.
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.
Søren Sandmann Pedersen [Sun, 8 Oct 2006 04:07:18 +0000 (04:07 +0000)]
Delete debug spew
Soren Sandmann [Sun, 8 Oct 2006 04:03:02 +0000 (04:03 +0000)]
Deal with address offsets. Address lookup is now:
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
Soren Sandmann [Sat, 23 Sep 2006 03:09:24 +0000 (03:09 +0000)]
Remove old commented out code Add commented out code accessing entire
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.
Søren Sandmann Pedersen [Sat, 23 Sep 2006 00:57:20 +0000 (00:57 +0000)]
Revert accidental commit
Soren Sandmann [Sat, 23 Sep 2006 00:54:01 +0000 (00:54 +0000)]
Remove old commented out code
2006-08-27 Soren Sandmann <sandmann@redhat.com>
* binparser.c: Remove old commented out code
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.
Søren Sandmann Pedersen [Sat, 26 Aug 2006 23:10:10 +0000 (23:10 +0000)]
Formatting fixes in header files
Soren Sandmann [Sat, 26 Aug 2006 23:01:07 +0000 (23:01 +0000)]
Update to new API
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
Soren Sandmann [Sat, 26 Aug 2006 22:44:12 +0000 (22:44 +0000)]
Add new struct BinRecord. Comment out functions related to formats. Add
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.
Soren Sandmann [Sat, 26 Aug 2006 16:44:17 +0000 (16:44 +0000)]
Add new bin_record() functions Implement them.
2006-08-26 Soren Sandmann <sandmann@daimi.au.dk>
* binparser.h: Add new bin_record() functions
* binparser.c: Implement them.
Soren Sandmann [Sat, 26 Aug 2006 16:27:00 +0000 (16:27 +0000)]
Demangle instead of strdup.
2006-08-22 Soren Sandmann <sandmann@daimi.au.dk>
* collector.c (unique_dup): Demangle instead of strdup.
Soren Sandmann [Tue, 22 Aug 2006 04:19:08 +0000 (04:19 +0000)]
Rename elf_sym_get_* to elf_parser_get_sym_* and make these functions take
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
Soren Sandmann [Tue, 22 Aug 2006 03:26:57 +0000 (03:26 +0000)]
Add ref_count and filename (bin_files): Add map from filenames to BinFiles
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
Soren Sandmann [Mon, 21 Aug 2006 06:00:57 +0000 (06:00 +0000)]
Pass map->bin_file to bin_symbol_get_name.
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.
Soren Sandmann [Mon, 21 Aug 2006 05:00:53 +0000 (05:00 +0000)]
Update
2006-08-21 Soren Sandmann <sandmann@redhat.com>
* TODO: Update
* elfparser.c (elf_parser_lookup_symbol): Change sense of size
check.
Soren Sandmann [Mon, 21 Aug 2006 04:12:12 +0000 (04:12 +0000)]
Initialize crc to 0xffffffff and invert it before returning.
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()
Soren Sandmann [Mon, 21 Aug 2006 03:34:44 +0000 (03:34 +0000)]
Comment out debug spew. (elf_parser_lookup_symbol): Add check that address
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.
Soren Sandmann [Mon, 21 Aug 2006 02:33:38 +0000 (02:33 +0000)]
Make process_lookup_symbol() return a string. Delete
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
Soren Sandmann [Mon, 21 Aug 2006 01:30:54 +0000 (01:30 +0000)]
New function
2006-08-20 Soren Sandmann <sandmann@daimi.au.dk>
* elfparser.c (elf_parser_new_from_file): New function
Soren Sandmann [Mon, 21 Aug 2006 00:18:10 +0000 (00:18 +0000)]
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.
Soren Sandmann [Sun, 20 Aug 2006 06:26:54 +0000 (06:26 +0000)]
Read the name out of the file instead of out of the struct.
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.
Soren Sandmann [Sun, 20 Aug 2006 04:32:12 +0000 (04:32 +0000)]
New file, made out of files from libiberty in binutils.
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
Soren Sandmann [Sat, 19 Aug 2006 23:56:18 +0000 (23:56 +0000)]
Many cleanups.
2006-08-19 Soren Sandmann <sandmann@redhat.com>
* elfparser.c: Many cleanups.
Søren Sandmann [Wed, 16 Aug 2006 17:25:03 +0000 (17:25 +0000)]
Pass the correct pointer.
2006-08-16 Søren Sandmann <ssp@localhost.localdomain>
* elfparser.c (check_symbol): Pass the correct pointer.
Soren Sandmann [Wed, 16 Aug 2006 17:21:54 +0000 (17:21 +0000)]
Really add this file.
2006-08-16 Soren Sandmann <sandmann@redhat.com>
* testelf.c: Really add this file.
Soren Sandmann [Wed, 16 Aug 2006 03:31:10 +0000 (03:31 +0000)]
Add beginning of an ELF parser.
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.
Søren Sandmann [Sat, 12 Aug 2006 20:40:58 +0000 (20:40 +0000)]
Some formatting fixes.
Sat Aug 12 16:40:38 2006 Søren Sandmann <sandmann@redhat.com>
* module/sysprof-module.c: Some formatting fixes.