diff options
-rw-r--r-- | ChangeLog | 6 | ||||
-rw-r--r-- | TODO | 16 | ||||
-rw-r--r-- | module/sysprof-module.c | 2 | ||||
-rw-r--r-- | sysprof.c | 11 |
4 files changed, 22 insertions, 13 deletions
@@ -1,3 +1,9 @@ +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 @@ -1,4 +1,4 @@ -Before 1.0.1: +Before 1.0.2: * See if we can reproduce the problem where libraries didn't get correctly reloaded after new versions were installed. @@ -96,8 +96,8 @@ Before 1.2: if it doesn't, load as 1.0, otherwise as whatever the version claims it is. - * Make provisions for forward compatibility: maybe it should be possible - to load records with more fields than specified. + * Make provisions for forward compatibility: maybe it should be + possible to load records with more fields than specified. * Figure out how to make sfile.[ch] use less memory. @@ -154,7 +154,7 @@ Before 1.2: - See if there is a way to make it distcheck -- grep FIXME - not10 +- grep "FIXME - not10" - translation should be hooked up @@ -201,9 +201,6 @@ 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 (probably we get that for free with stackstash reorganisation) -- support more than one reader of the samples properly - - Don't generate them if noone cares - - Add ability to show more than one function at a time. Algorithm: Find all relevant nodes; For each relevant node @@ -218,6 +215,7 @@ http://www.linuxbase.org/spec/booksets/LSB-Embedded/LSB-Embedded/ehframe.html add trace to tree (leaf, interesting) - Consider adding KDE-style nested callgraph view - probably need a dependency on gtk+ 2.8 (cairo) for this. + - Matthias has code for something like this. - Add support for line numbers within functions - Possibly a special "view details" mode, assuming that the details of a function are not that interesting @@ -226,7 +224,6 @@ http://www.linuxbase.org/spec/booksets/LSB-Embedded/LSB-Embedded/ehframe.html - rethink caller list, not terribly useful at the moment. Federico suggested listing all ancestors. - - Have kernel module report the file the address was found in Should avoid a lot of potential broken/raciness with dlopen etc. Probably better to send a list of maps with each trace. @@ -419,6 +416,9 @@ Later: DONE: +* support more than one reader of the samples properly + - Don't generate them if noone cares + * Correctness - When the module is unloaded, kill all processes blocking in read - or block unloading until all processes have exited diff --git a/module/sysprof-module.c b/module/sysprof-module.c index d381590..bc5991e 100644 --- a/module/sysprof-module.c +++ b/module/sysprof-module.c @@ -95,7 +95,7 @@ read_frame (void *frame_pointer, StackFrame *frame) if (__copy_from_user_inatomic ( frame, frame_pointer, sizeof (StackFrame))) - return 2; + return 1; return 0; } @@ -918,6 +918,9 @@ on_delete (GtkWidget *window, Application *app) { /* Workaround for http://bugzilla.gnome.org/show_bug.cgi?id=317775 + * + * Without it, the read callbacks can fire _after_ gtk_main_quit() + * has been called and cause stuff to be called on destroyed widgets. */ while (gtk_main_iteration ()) ; @@ -1430,7 +1433,8 @@ build_gui (Application *app) /* TreeViews */ /* object view */ - app->object_view = (GtkTreeView *)glade_xml_get_widget (xml, "object_view"); + app->object_view = + (GtkTreeView *)glade_xml_get_widget (xml, "object_view"); gtk_tree_view_set_enable_search (app->object_view, FALSE); col = add_plain_text_column (app->object_view, _("Functions"), OBJECT_NAME); add_double_format_column (app->object_view, _("Self"), OBJECT_SELF, "%.2f "); @@ -1463,8 +1467,6 @@ build_gui (Application *app) G_CALLBACK (on_descendants_row_expanded_or_collapsed), app); gtk_tree_view_column_set_expand (col, TRUE); - gtk_widget_grab_focus (GTK_WIDGET (app->object_view)); - /* screenshot window */ app->screenshot_window = glade_xml_get_widget (xml, "screenshot_window"); app->screenshot_textview = glade_xml_get_widget (xml, "screenshot_textview"); @@ -1486,7 +1488,8 @@ build_gui (Application *app) gtk_widget_show_all (app->main_window); gtk_widget_hide (app->dummy_button); gtk_widget_hide (app->screenshot_window); - + + gtk_widget_grab_focus (GTK_WIDGET (app->object_view)); queue_show_samples (app); return TRUE; |