summaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--ChangeLog6
-rw-r--r--TODO16
-rw-r--r--module/sysprof-module.c2
-rw-r--r--sysprof.c11
4 files changed, 22 insertions, 13 deletions
diff --git a/ChangeLog b/ChangeLog
index 8f333a9..26b1e3c 100644
--- a/ChangeLog
+++ b/ChangeLog
@@ -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
diff --git a/TODO b/TODO
index 6e311b6..af4e47c 100644
--- a/TODO
+++ b/TODO
@@ -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;
}
diff --git a/sysprof.c b/sysprof.c
index c56cbcc..345afb1 100644
--- a/sysprof.c
+++ b/sysprof.c
@@ -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;