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.
This commit is contained in:
Soeren Sandmann
2006-01-14 23:26:34 +00:00
committed by Søren Sandmann Pedersen
parent 9125c4e644
commit 98308836af
7 changed files with 39 additions and 12 deletions

View File

@ -1,3 +1,12 @@
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> Fri Jan 13 23:11:33 2006 Søren Sandmann <sandmann@redhat.com>
* TODO: updates * TODO: updates

View File

@ -1,7 +1,11 @@
SUBDIRS = $(MODULE_SUBDIR) SUBDIRS = $(MODULE_SUBDIR)
DIST_SUBDIRS = module DIST_SUBDIRS = module
bin_PROGRAMS = sysprof sysprof-text bin_PROGRAMS = sysprof-text
if BUILD_GUI
bin_PROGRAMS += sysprof
endif
SYSPROF_CORE = \ SYSPROF_CORE = \
binfile.h \ binfile.h \
@ -23,6 +27,7 @@ SYSPROF_CORE = \
# #
# GUI version # GUI version
# #
if BUILD_GUI
sysprof_SOURCES = \ sysprof_SOURCES = \
$(SYSPROF_CORE) \ $(SYSPROF_CORE) \
@ -37,6 +42,8 @@ sysprof_CPPFLAGS = \
sysprof_LDADD = $(GUI_DEP_LIBS) sysprof_LDADD = $(GUI_DEP_LIBS)
endif
udevdir = $(sysconfdir)/udev/rules.d udevdir = $(sysconfdir)/udev/rules.d
dist_udev_DATA = 60-sysprof.rules dist_udev_DATA = 60-sysprof.rules

14
TODO
View File

@ -20,6 +20,11 @@ Before 1.0.2:
Before 1.2: Before 1.2:
* Consider deleting cmdline hack in process.c and replace with something at
the symbol resolution level.
* Fix (deleted) problem.
* Add spew infrastructure to make remote debugging easier. * Add spew infrastructure to make remote debugging easier.
* Make it compile and work on x86-64 * Make it compile and work on x86-64
@ -30,8 +35,6 @@ Before 1.2:
the alert. This causes the start button to appear prelighted. Probably the alert. This causes the start button to appear prelighted. Probably
just another gtk+ bug. just another gtk+ bug.
* Don't build the GUI if gtk+ is not installed
* Find out if the first sort order of a GtkTreeView column can be changed * Find out if the first sort order of a GtkTreeView column can be changed
programmatically. programmatically.
@ -136,7 +139,8 @@ Before 1.2:
together. well, they could be stitched together in the kernel. together. well, they could be stitched together in the kernel.
Already done: we now take a stacktrace of the user space process Already done: we now take a stacktrace of the user space process
when the interrupt happens in kernel mode. (Unfortunately, this when the interrupt happens in kernel mode. (Unfortunately, this
causes lockups on many kernels). causes lockups on many kernels (though I haven't seen that for
a while)).
We don't take any stacktraces of the kernel though. Things that We don't take any stacktraces of the kernel though. Things that
need to be need to be
@ -206,7 +210,7 @@ http://www.linuxbase.org/spec/booksets/LSB-Embedded/LSB-Embedded/ehframe.html
- Charge 'self' properly to processes that don't get any stack trace at all - Charge 'self' properly to processes that don't get any stack trace at all
(probably we get that for free with stackstash reorganisation) (probably we get that for free with stackstash reorganisation)
- Add ability to show more than one function at a time. Algorithm: - Consider adding ability to show more than one function at a time. Algorithm:
Find all relevant nodes; Find all relevant nodes;
For each relevant node For each relevant node
best_so_far = relevant node best_so_far = relevant node
@ -421,6 +425,8 @@ Later:
DONE: DONE:
* Don't build the GUI if gtk+ is not installed
* Find out why we sometimes get reports of time spent by [pid 0]. * Find out why we sometimes get reports of time spent by [pid 0].
* - Run a.out generated normally with gcc. * - Run a.out generated normally with gcc.

View File

@ -86,11 +86,12 @@ fi
core_dep="glib-2.0" core_dep="glib-2.0"
gui_dep="gtk+-2.0 > 2.6.0 gdk-pixbuf-2.0 pangoft2 libglade-2.0" gui_dep="gtk+-2.0 > 2.6.0 gdk-pixbuf-2.0 pangoft2 libglade-2.0"
PKG_CHECK_MODULES(CORE_DEP, $core_dep, [], PKG_CHECK_MODULES(CORE_DEP, $core_dep, [], AC_MSG_ERROR([sysprof dependencies not satisfied]))
AC_MSG_ERROR([sysprof dependencies not satisfied]))
PKG_CHECK_MODULES(GUI_DEP, $gui_dep, [], build_gui=yes
AC_MSG_ERROR([sysprof dependencies not satisfied])) PKG_CHECK_MODULES(GUI_DEP, $gui_dep, [], build_gui=no)
AM_CONDITIONAL([BUILD_GUI], [test "$build_gui" = yes])
# libiberty and libbfd # libiberty and libbfd

View File

@ -331,6 +331,8 @@ profile_create_descendants (Profile *profile,
while (node) while (node)
{ {
g_print ("node: %s (%d)\n", node->address, node->size);
if (node->toplevel) if (node->toplevel)
stack_node_foreach_trace (node, add_trace_to_tree, &tree); stack_node_foreach_trace (node, add_trace_to_tree, &tree);
@ -473,7 +475,7 @@ build_object_list (StackNode *node, gpointer data)
obj->total = compute_total (node); obj->total = compute_total (node);
obj->self = 0; obj->self = 0;
for (n = node; n != NULL; n = n->siblings) for (n = node; n != NULL; n = n->next)
obj->self += n->size; obj->self += n->size;
*objects = g_list_prepend (*objects, obj); *objects = g_list_prepend (*objects, obj);

View File

@ -30,7 +30,10 @@ typedef struct ProfileCaller ProfileCaller;
struct ProfileObject struct ProfileObject
{ {
char * name; /* identifies this object uniquely */ char * name; /* identifies this object uniquely
* (the pointer itself, not the
* string)
*/
guint total; /* sum of all toplevel totals */ guint total; /* sum of all toplevel totals */
guint self; /* sum of all selfs */ guint self; /* sum of all selfs */

View File

@ -1062,7 +1062,6 @@ compute_text_width (GtkTreeView *view,
{ {
int *width = data; int *width = data;
char *name; char *name;
int indent;
get_data (view, iter, &name, NULL, NULL); get_data (view, iter, &name, NULL, NULL);