-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.
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.
- See if there is a way to make it distcheck
-- grep FIXME - not10
+- grep "FIXME - not10"
- translation should be hooked up
- 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
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
- 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.
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
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 ())
;
/* 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 ");
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");
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;