Commit Graph

51 Commits

Author SHA1 Message Date
39cb26654a 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
2007-08-26 05:41:59 +00:00
7b821752f9 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
2007-03-05 21:53:57 +00:00
d3c0e7be5c 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.
2006-11-22 07:06:04 +00:00
d1a082ffec 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.
2006-11-20 07:25:02 +00:00
cce917856b 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
2006-11-20 04:11:21 +00:00
0b718ee95c 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
2006-11-20 04:08:01 +00:00
55fc6d7805 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.
2006-11-11 03:34:40 +00:00
9a1ed3d336 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
2006-11-02 06:54:12 +00:00
d78e744422 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.
2006-10-26 05:13:16 +00:00
5eb19d00fa 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.
2006-10-12 03:45:21 +00:00
df07f71539 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.
2006-10-11 05:37:24 +00:00
d43cdf3c14 Add a destroy notifier to StackStash
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-31 04:50:34 +00:00
5efd06051c Simplify this file a bit, and make it not rely on atomic pointer writes.
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-31 02:12:23 +00:00
e97dcc792a updates Various formatting fixes.
Sat Apr 22 15:08:01 2006  Soeren Sandmann  <sandmann@redhat.com>

	* TODO: updates
	* profile.c, sfile.c, sformat.c: Various formatting fixes.
2006-04-22 19:08:23 +00:00
6534ca13c0 New files containing a simplified and sanitized version of the state
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.
2006-03-28 03:02:21 +00:00
9859854cc1 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-12 04:00:23 +00:00
135ce0e2ea Updates
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.
2006-01-15 05:28:04 +00:00
98308836af Only build GUI when the necessary dependencies are found.
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.
2006-01-14 23:26:34 +00:00
00244118a2 Add beginning of a screenshot window.
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
2005-11-08 04:32:19 +00:00
1bf3734fdb Test for !prev instead of !next.
Sun Nov  6 23:03:49 2005  Soeren Sandmann  <sandmann@redhat.com>

        * profile.c (add_trace_to_tree): Test for !prev instead of !next.
2005-11-07 03:53:20 +00:00
64b2627c4a Make these function call back with GLists rather than GSLists.
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.
2005-11-06 23:27:17 +00:00
c1bfbbf9b8 Turn this function into a StackFunction.
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().
2005-11-06 22:10:30 +00:00
c0aed2a4de Use callbacks from stackstash.
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
2005-11-05 22:57:09 +00:00
1f5b6ff38c Don't compute the total field.
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-05 17:28:22 +00:00
c778a1b1ec Add "total" field.
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.
2005-11-01 04:37:16 +00:00
c34a9b862f TODO 2005-10-31 04:20:25 +00:00
dff4affaab Merge stackstash-reorg branch into HEAD
2005-10-30  Soren Sandmann <sandmann@redhat.com>

	* Merge stackstash-reorg branch into HEAD
2005-10-30 20:14:31 +00:00
f7e888e574 Revert accidental commit of stackstash reorganisation 2005-10-01 05:23:58 +00:00
cc1055d105 Update
Sat Oct  1 01:21:57 2005  Soeren Sandmann  <sandmann@redhat.com>

        * TODO: Update
2005-10-01 05:21:25 +00:00
509d5f07ed Fix some warnings.
Mon Aug 15 20:39:11 2005  Soeren Sandmann  <sandmann@redhat.com>

        * binfile.c, process.c, profile.c: Fix some warnings.
2005-08-16 00:40:26 +00:00
f3b78b7944 Cache BinFiles by filename.
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.
2005-07-10 03:28:35 +00:00
e6b3ae64bd *** empty log message *** 2005-05-10 13:07:20 +00:00
c427b88352 Implement this function
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
2005-05-07 17:57:59 +00:00
984c6e1710 Store a pointer to the root of the call tree
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
2005-04-23 23:18:42 +00:00
b3c466debf Remove debug spew
Sat Apr  9 17:04:50 2005  Søren Sandmann  <sandmann@redhat.com>

	* Makefile: Remove debug spew

	* *: Add copyright notices
2005-04-09 21:17:24 +00:00
d33a9703a0 Make this function work
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.
2005-03-31 05:21:58 +00:00
c2dc2c3680 updates
Mon Mar 28 11:09:02 2005  Soeren Sandmann  <sandmann@redhat.com>

	* TODO: updates
2005-03-28 16:10:01 +00:00
0901851c45 Remove "loading and saving"
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.
2005-03-26 01:19:07 +00:00
2af6447238 Primitive loading and saving.
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
2005-03-23 05:05:57 +00:00
18ca5ed131 Bug fixes. Add actual generation.
Sat Mar  5 01:09:33 2005  Soeren Sandmann  <sandmann@redhat.com>

	* sfile.c: Bug fixes. Add actual generation.
2005-03-05 06:16:47 +00:00
466b093348 Write this function.
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.
2005-03-04 04:48:40 +00:00
de4b3c076d Experiment with a file-format-description format.
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.
2005-03-03 04:44:28 +00:00
c5b66034c5 *** empty log message *** 2004-11-23 00:10:55 +00:00
3b6a53efaf *** empty log message *** 2004-11-17 23:37:44 +00:00
b40d94ca41 *** empty log message *** 2004-11-15 23:15:59 +00:00
6ef8165781 *** empty log message *** 2004-11-12 23:27:52 +00:00
d71d00ab0b *** empty log message *** 2004-11-12 18:30:01 +00:00
0ed7bdbdfc *** empty log message *** 2004-11-12 17:54:15 +00:00
c12bfc31e1 get rid of object table 2004-11-12 16:51:34 +00:00
17e3ce236b various small fixes 2004-11-12 15:21:07 +00:00