__color__	__group__	ticket	summary	component	version	milestone	type	owner	status	created	_changetime	_description	_reporter
3	Active Tickets	1	segfault when opening an eventlog	ThreadScope			defect	somebody	new	2011-09-06T03:34:54Z+0100	2012-01-14T10:03:51Z+0000	"Segfault in a dev version of ThreadScope (with spark histogram), when opening a small eventlog file repeatedly. Happens about 1 in 10 times.

Ubuntu GNU/Linux with development version of Unity and its exotic gtk theme, other programs warn about assertion failures sometimes, too.

{{{
Starting program: /home/mikolaj/repos/ThreadScope/dist/build/threadscope/threadscope +RTS -K83886080
[Thread debugging using libthread_db enabled]
[New Thread 0x7fffee6d7700 (LWP 10555)]
[New Thread 0x7fffeded6700 (LWP 10556)]
[New Thread 0x7fffe4ea2700 (LWP 10619)]
[Thread 0x7fffee6d7700 (LWP 10555) exited]
[Thread 0x7fffe4ea2700 (LWP 10619) exited]
[New Thread 0x7fffe4ea2700 (LWP 16293)]
[New Thread 0x7fffee6d7700 (LWP 16294)]
[Thread 0x7fffe4ea2700 (LWP 16293) exited]
[New Thread 0x7fffe4ea2700 (LWP 16415)]
[Thread 0x7fffe4ea2700 (LWP 16415) exited]
[New Thread 0x7fffe4ea2700 (LWP 16476)]
[Thread 0x7fffe4ea2700 (LWP 16476) exited]
[New Thread 0x7fffe4ea2700 (LWP 16517)]
[New Thread 0x7fff3bfff700 (LWP 16518)]
[Thread 0x7fff3bfff700 (LWP 16518) exited]
[Thread 0x7fffee6d7700 (LWP 16294) exited]
[New Thread 0x7fffee6d7700 (LWP 16559)]
[New Thread 0x7fff3bfff700 (LWP 16560)]
[Thread 0x7fff3bfff700 (LWP 16560) exited]
[Thread 0x7fffee6d7700 (LWP 16559) exited]
[New Thread 0x7fffee6d7700 (LWP 16683)]
[New Thread 0x7fff3bfff700 (LWP 16704)]
[Thread 0x7fff3bfff700 (LWP 16704) exited]
[Thread 0x7fffe4ea2700 (LWP 16517) exited]

Program received signal SIGSEGV, Segmentation fault.
0x00007ffff7918f83 in _gtk_rbtree_next (tree=0x15d5860, node=0x31) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkrbtree.c:1287
1287	/build/buildd/gtk+2.0-2.24.4/gtk/gtkrbtree.c: No such file or directory.
	in /build/buildd/gtk+2.0-2.24.4/gtk/gtkrbtree.c
(gdb) where
#0  0x00007ffff7918f83 in _gtk_rbtree_next (tree=0x15d5860, node=0x31) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkrbtree.c:1287
#1  0x00007ffff79cb608 in gtk_tree_view_bin_expose (widget=0x13663e0, event=0x7fffffff9940) at /build/buildd/gtk+2.0-2.24.4/gtk/gtktreeview.c:5020
#2  0x00007ffff79cc665 in gtk_tree_view_expose (widget=0x13663e0, event=0x7fffffff9940) at /build/buildd/gtk+2.0-2.24.4/gtk/gtktreeview.c:5091
#3  0x00007ffff78d1578 in _gtk_marshal_BOOLEAN__BOXED (closure=0x12b4840, return_value=0x7fffffff95e0, n_param_values=<value optimised out>, param_values=0x1510100, invocation_hint=<value optimised out>, 
    marshal_data=<value optimised out>) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmarshalers.c:86
#4  0x00007ffff5a9f81c in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#5  0x00007ffff5ab0e1f in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#6  0x00007ffff5ab9fa9 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#7  0x00007ffff5aba41f in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
#8  0x00007ffff79ed4d1 in gtk_widget_event_internal (widget=0x13663e0, event=0x7fffffff9940) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkwidget.c:4988
#9  0x00007ffff78cfd9d in IA__gtk_main_do_event (event=0x7fffffff9940) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmain.c:1610
#10 0x00007ffff75297dc in _gdk_window_process_updates_recurse (window=0x14cbea0, expose_region=0x13020c0) at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5429
#11 0x00007ffff752978b in _gdk_window_process_updates_recurse (window=0x154bd80, expose_region=0x7fffe8041c30) at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5402
#12 0x00007ffff752978b in _gdk_window_process_updates_recurse (window=0x12ad6c0, expose_region=0x7fffe8037e10) at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5402
#13 0x00007ffff752473b in gdk_window_process_updates_internal (window=0x12ad6c0) at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5588
#14 0x00007ffff7526929 in IA__gdk_window_process_all_updates () at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5696
#15 0x00007ffff7526999 in gdk_window_update_idle (data=<value optimised out>) at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5322
#16 0x00007ffff7503c46 in gdk_threads_dispatch (data=0x7fffe805af00) at /build/buildd/gtk+2.0-2.24.4/gdk/gdk.c:512
#17 0x00007ffff51d3bcd in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#18 0x00007ffff51d43a8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#19 0x00007ffff51d49f2 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
#20 0x00007ffff78ceaf7 in IA__gtk_main () at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmain.c:1257
#21 0x000000000042b7f5 in sRLj_info ()
#22 0x0000000000000000 in ?? ()
(gdb) bt full
#0  0x00007ffff7918f83 in _gtk_rbtree_next (tree=0x15d5860, node=0x31) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkrbtree.c:1287
        __PRETTY_FUNCTION__ = ""_gtk_rbtree_next""
#1  0x00007ffff79cb608 in gtk_tree_view_bin_expose (widget=0x13663e0, event=0x7fffffff9940) at /build/buildd/gtk+2.0-2.24.4/gtk/gtktreeview.c:5020
        done = 0
        parity = 1
        is_separator = <value optimised out>
        is_first = <value optimised out>
        is_last = <value optimised out>
        tree_view = 0x13663e0
        path = <value optimised out>
        tree = 0x15d5860
        list = <value optimised out>
        node = 0x14fe840
        cursor = 0x7fffe8041cc0
        cursor_tree = 0x15d5860
        drag_highlight = 0x0
        drag_highlight_tree = 0x0
        iter = {stamp = -85632914, user_data = 0x2, user_data2 = 0x200000000, user_data3 = 0x2}
        y_offset = 46
        cell_offset = <value optimised out>
        max_height = 23
        depth = 1
        background_area = {x = 0, y = 23, width = 178, height = 23}
        cell_area = {x = 12, y = 23, width = 165, height = 23}
        flags = 0
        highlight_x = <value optimised out>
        expander_cell_width = <value optimised out>
        bin_window_width = 178
        bin_window_height = <value optimised out>
        cursor_path = <value optimised out>
        drag_dest_path = <value optimised out>
        first_column = 0x13c1260
        last_column = 0x13c1260
        vertical_separator = 0
        horizontal_separator = 2
        focus_line_width = <value optimised out>
        allow_rules = 1
        has_special_cell = 1
        rtl = <value optimised out>
        n_visible_columns = <value optimised out>
        pointer_x = 1
        pointer_y = 4
        grid_line_width = 492
        got_pointer = 0
        row_ending_details = 0
        draw_vgrid_lines = 0
        draw_hgrid_lines = 0
        __PRETTY_FUNCTION__ = ""gtk_tree_view_bin_expose""
#2  0x00007ffff79cc665 in gtk_tree_view_expose (widget=0x13663e0, event=0x7fffffff9940) at /build/buildd/gtk+2.0-2.24.4/gtk/gtktreeview.c:5091
        retval = <value optimised out>
        tmp_list = <value optimised out>
        tree_view = 0x13663e0
#3  0x00007ffff78d1578 in _gtk_marshal_BOOLEAN__BOXED (closure=0x12b4840, return_value=0x7fffffff95e0, n_param_values=<value optimised out>, param_values=0x1510100, invocation_hint=<value optimised out>, 
    marshal_data=<value optimised out>) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmarshalers.c:86
        callback = 0x7ffff79cc580 <gtk_tree_view_expose>
        cc = 0x12b4840
        data1 = 0x13663e0
        data2 = <value optimised out>
        v_return = <value optimised out>
---Type <return> to continue, or q <return> to quit---
        __PRETTY_FUNCTION__ = ""_gtk_marshal_BOOLEAN__BOXED""
#4  0x00007ffff5a9f81c in g_closure_invoke () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#5  0x00007ffff5ab0e1f in ?? () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#6  0x00007ffff5ab9fa9 in g_signal_emit_valist () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#7  0x00007ffff5aba41f in g_signal_emit () from /usr/lib/x86_64-linux-gnu/libgobject-2.0.so.0
No symbol table info available.
#8  0x00007ffff79ed4d1 in gtk_widget_event_internal (widget=0x13663e0, event=0x7fffffff9940) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkwidget.c:4988
        signal_num = <value optimised out>
        return_val = 0
#9  0x00007ffff78cfd9d in IA__gtk_main_do_event (event=0x7fffffff9940) at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmain.c:1610
        event_widget = 0x13663e0
        grab_widget = 0x13663e0
        window_group = 0x13d0ea0
        rewritten_event = <value optimised out>
        tmp_list = <value optimised out>
        __PRETTY_FUNCTION__ = ""IA__gtk_main_do_event""
#10 0x00007ffff75297dc in _gdk_window_process_updates_recurse (window=0x14cbea0, expose_region=0x13020c0) at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5429
        event = {type = GDK_EXPOSE, any = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000'}, expose = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', area = {x = 0, y = 0, width = 178, height = 510}, 
            region = 0x13020c0, count = 0}, no_expose = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000'}, visibility = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', state = GDK_VISIBILITY_UNOBSCURED}, 
          motion = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', time = 0, x = 3.7771525079181847e-312, y = 2.5197347937903574e-321, axes = 0x13020c0, state = 0, is_hint = 32767, device = 0x3a00000001, 
            x_root = 6.9533359274326163e-310, y_root = 1.1032857409000708e-316}, button = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', time = 0, x = 3.7771525079181847e-312, y = 2.5197347937903574e-321, 
            axes = 0x13020c0, state = 0, button = 32767, device = 0x3a00000001, x_root = 6.9533359274326163e-310, y_root = 1.1032857409000708e-316}, scroll = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', time = 0, 
            x = 3.7771525079181847e-312, y = 2.5197347937903574e-321, state = 19931328, direction = GDK_SCROLL_UP, device = 0x7fff00000000, x_root = 1.2307575587647986e-312, y_root = 6.9533359274326163e-310}, key = {type = GDK_EXPOSE, 
            window = 0x14cbea0, send_event = 0 '\000', time = 0, state = 0, keyval = 178, length = 510, string = 0x13020c0 ""\002"", hardware_keycode = 0, group = 0 '\000', is_modifier = 0}, crossing = {type = GDK_EXPOSE, 
            window = 0x14cbea0, send_event = 0 '\000', subwindow = 0xb200000000, time = 510, x = 9.8473844407937208e-317, y = 6.9531436082559078e-310, x_root = 1.2307575587647986e-312, y_root = 6.9533359274326163e-310, mode = 22330752, 
            detail = GDK_NOTIFY_ANCESTOR, focus = -402243552, state = 32767}, focus_change = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', in = 0}, configure = {type = GDK_EXPOSE, window = 0x14cbea0, 
            send_event = 0 '\000', x = 0, y = 0, width = 178, height = 510}, property = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', atom = 0xb200000000, time = 510, state = 0}, selection = {type = GDK_EXPOSE, 
            window = 0x14cbea0, send_event = 0 '\000', selection = 0xb200000000, target = 0x1fe, property = 0x13020c0, time = 0, requestor = 32767}, owner_change = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', 
            owner = 0, reason = GDK_OWNER_CHANGE_NEW_OWNER, selection = 0x1fe, time = 19931328, selection_time = 0}, proximity = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', time = 0, device = 0xb200000000}, client = {
            type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', message_type = 0xb200000000, data_format = 510, data = {b = ""\300 0\001\000\000\000\000\000\000\000\000\377\177\000\000\001\000\000"", s = {8384, 304, 0, 0, 0, 0, 
                32767, 0, 1, 0}, l = {19931328, 140733193388032, 249108103169, 140737085971504, 22330752}}}, dnd = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', context = 0xb200000000, time = 510, x_root = 0, 
            y_root = 0}, window_state = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', changed_mask = 0, new_window_state = 0}, setting = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', 
            action = GDK_SETTING_ACTION_NEW, name = 0xb200000000 <Address 0xb200000000 out of bounds>}, grab_broken = {type = GDK_EXPOSE, window = 0x14cbea0, send_event = 0 '\000', keyboard = 0, implicit = 0, grab_window = 0x1fe}}
        private = 0x14cbea0
        child = <value optimised out>
        child_region = <value optimised out>
        r = {x = 510, y = 0, width = 0, height = 0}
        l = <value optimised out>
        children = 0x0
#11 0x00007ffff752978b in _gdk_window_process_updates_recurse (window=0x154bd80, expose_region=0x7fffe8041c30) at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5402
        private = 0x154bd80
        child = 0x14cbea0
        child_region = 0x13020c0
        r = {x = 0, y = 0, width = 178, height = 510}
        l = 0x7fffe8064020
        children = 0x7fffe8064020
#12 0x00007ffff752978b in _gdk_window_process_updates_recurse (window=0x12ad6c0, expose_region=0x7fffe8037e10) at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5402
        private = 0x12ad6c0
        child = 0x154bd80
        child_region = 0x7fffe8041c30
        r = {x = 2, y = 67, width = 178, height = 510}
        l = 0x7fffe8054240
        children = 0x1600f80
#13 0x00007ffff752473b in gdk_window_process_updates_internal (window=0x12ad6c0) at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5588
        expose_region = 0x7fffe8037e10
        update_area = 0x13ef660
---Type <return> to continue, or q <return> to quit---
        private = 0x12ad6c0
        impl_iface = <value optimised out>
        save_region = 0
        clip_box = {x = 2, y = 67, width = 178, height = 510}
#14 0x00007ffff7526929 in IA__gdk_window_process_all_updates () at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5696
        private = 0x12ad6c0
        old_update_windows = 0x7fffe803e750
        tmp_list = 0x7fffe803e750
        in_process_all_updates = 1
        got_recursive_update = 0
#15 0x00007ffff7526999 in gdk_window_update_idle (data=<value optimised out>) at /build/buildd/gtk+2.0-2.24.4/gdk/gdkwindow.c:5322
No locals.
#16 0x00007ffff7503c46 in gdk_threads_dispatch (data=0x7fffe805af00) at /build/buildd/gtk+2.0-2.24.4/gdk/gdk.c:512
        dispatch = 0x7fffe805af00
        ret = 0
#17 0x00007ffff51d3bcd in g_main_context_dispatch () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#18 0x00007ffff51d43a8 in ?? () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#19 0x00007ffff51d49f2 in g_main_loop_run () from /lib/x86_64-linux-gnu/libglib-2.0.so.0
No symbol table info available.
#20 0x00007ffff78ceaf7 in IA__gtk_main () at /build/buildd/gtk+2.0-2.24.4/gtk/gtkmain.c:1257
        tmp_list = <value optimised out>
        functions = 0x0
        init = <value optimised out>
        loop = 0x14dd7d0
#21 0x000000000042b7f5 in sRLj_info ()
No symbol table info available.
#22 0x0000000000000000 in ?? ()
No symbol table info available.
(gdb) 
}}}

Possibly related error messages from ~/.xsession-errors:

{{{
** (<unknown>:1900): DEBUG: MaximizeIfBigEnough: window mapped and already maximized, just undecorate

** (<unknown>:1900): WARNING **: Unable to fetch children: Method ""Children"" with signature """" on interface ""org.ayatana.bamf.view"" doesn't exist



** (<unknown>:1900): WARNING **: Unable to fetch children: Method ""Children"" with signature """" on interface ""org.ayatana.bamf.view"" doesn't exist



(nautilus:1909): GdkPixbuf-CRITICAL **: gdk_pixbuf_format_get_name: assertion `format != NULL' failed

** (<unknown>:1900): WARNING **: Unable to fetch children: Method ""Children"" with signature """" on interface ""org.ayatana.bamf.view"" doesn't exist



** (<unknown>:1900): WARNING **: Unable to fetch children: Method ""Children"" with signature """" on interface ""org.ayatana.bamf.view"" doesn't exist


** (<unknown>:1900): DEBUG: MaximizeIfBigEnough: Threadscope window size doesn't fit

(<unknown>:1900): GLib-GObject-WARNING **: instance with invalid (NULL) class pointer

(<unknown>:1900): GLib-GObject-CRITICAL **: g_signal_handler_disconnect: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(<unknown>:1900): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'

(<unknown>:1900): GLib-GObject-CRITICAL **: g_signal_handler_disconnect: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(<unknown>:1900): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'

(<unknown>:1900): GLib-GObject-CRITICAL **: g_signal_handler_disconnect: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(<unknown>:1900): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'

(<unknown>:1900): GLib-GObject-CRITICAL **: g_signal_handler_disconnect: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed

(<unknown>:1900): GLib-GObject-WARNING **: instance of invalid non-instantiatable type `(null)'

(<unknown>:1900): GLib-GObject-CRITICAL **: g_signal_handler_disconnect: assertion `G_TYPE_CHECK_INSTANCE (instance)' failed
}}}

"	MikolajKonarski
3	Active Tickets	4	PDFs saved on Mac have a blue background	component1			defect	somebody	new	2011-09-08T15:26:31Z+0100	2011-09-17T04:36:59Z+0100	"Attached is an example TS PDF along with a random non-TS PDF with transparency,
plus screenshots.

"	kowey
4	Active Tickets	5	Regression: spark pool graph rendered wrongly when scrolling	ThreadScope		None	defect		new	2011-09-13T10:46:42Z+0100	2011-09-13T10:46:42Z+0100	"Spark pool graph is rendered wrongly when scrolling slowly to the right, so that fragments of the curve are drawn (in a wrong way) on the leftmost part of the canvas.


Present in version from Sep 7 04:24:53, wasn't there some time before, I think."	MikolajKonarski
3	Active Tickets	6	Threadscope fails to read partially written file	ThreadScope	ThreadScope 0.2.0	None	enhancement	maintainer	assigned	2011-10-09T05:06:05Z+0100	2013-04-12T14:49:01Z+0100	"If ghc compiled program was launched with option to write eventlog and then was interrupted by Ctrl-C then eventlog file will be partially written.

Actual behaviour: Threadscope fails to read such file complaining ""There was a problem loading the eventlog"", ""too few bytes. Failed reading at byte position 4194995""

Expecting behaviour: threadscope displays an info box saying that file was damaged and only first XXXX bytes (YYY seconds) was recovered then it should work as if this file was finalized properly."	pacak
3	Active Tickets	8	malloc: pointer being freed was not allocated	ThreadScope	ThreadScope 0.2.0	None	defect		new	2011-11-18T16:37:00Z+0000	2012-05-18T13:11:51Z+0100	"{{{
$ threadscope 
threadscope(57833,0x7fff7e0b3960) malloc: *** error for object 0x101837168: pointer being freed was not allocated
*** set a breakpoint in malloc_error_break to debug
Abort trap: 6
}}}

This is with

* a 64 bit machine
* running MacOS X 10.7
* with GHC 7.2.1
* threadscope 0.2.0
* gtk-0.12.1"	kowey
4	Active Tickets	10	include spark sizes etc in ch8 test	ThreadScope		None	enhancement		new	2011-11-25T10:05:49Z+0000	2011-11-29T13:31:40Z+0000	This would make a good wont-fix, but I was thinking it would be nice if people could play with all the bells and whistles on the sample trace.	kowey
3	Active Tickets	15	not enough space in left panel for trace expansion?	ThreadScope		None	defect		new	2011-11-30T15:06:42Z+0000	2011-12-09T12:10:28Z+0000	"Another possible wont-fix:

To my screen, the left panel is wide enough to display a list of traces with checkboxes.  If you expand any of the trace tree and then collapse it again, the checkboxes disappear, presumably because they are too far to the right.

Only reporting this because it can be easy to expand the traces by accident if you just click on them, for example, and the checkboxes disappearing can be a little bit confusing."	kowey
4	Active Tickets	16	Redesign the UI using the general visual communication principles	ThreadScope		None	enhancement		new	2011-12-05T12:14:17Z+0000	2011-12-21T12:56:25Z+0000	Long term. Gather feedback, look at how easy it is to describe the UI in tutorials, discuss the various ideas from kowey's emails (Nov 20, 2011, Dec 1, 2011) and TODO (all IRC discussions are summarized there), study literature on visual communication (eg. Tufte), look at other libraries and programs. Then reshuffle the panes, draw the graphs differently, etc. to increase usability and make TS easier to learn.	MikolajKonarski
4	Active Tickets	17	Toggling event labels does not resize canvas	ThreadScope		None	defect		new	2011-12-12T16:06:33Z+0000	2011-12-12T16:06:33Z+0000	In the result, in the starting view, some HECs vanish and cannot be recovered by scrolling.	MikolajKonarski
4	Active Tickets	19	Improve usability, especially the UI, based on use cases	ThreadScope		None	enhancement		new	2011-12-21T13:09:08Z+0000	2011-12-21T13:09:08Z+0000	This ticket is not about UI improved using the universal principles of visual communication, but about improvements based on down-to-earth analysis or imagining of use cases, user stories, (imagined) experiences with alternative UI mock-ups. etc. In other words, this is the broader question, with research, modelling => personas + scenarios => framework => detailed design.	MikolajKonarski
4	Active Tickets	24	Print big times using large time units to avoid too long labels	ThreadScope		None	defect		new	2012-03-24T18:35:41Z+0000	2012-03-24T18:35:41Z+0000	"On very large eventlogs, the labels of histogram bars overwrite each other, because the numbers (spark lengths) grow too big. Extend and use the function that prints time in different units to handle large time values with large time units, that is kiloseconds and megaseconds, or perhaps minutes, hours, days, weeks, etc.
"	MikolajKonarski
3	Active Tickets	26	ThreadScope shows garbled characters when using Unicode characters in user event	ThreadScope		None	defect		new	2012-04-16T06:23:44Z+0100	2012-10-29T19:58:55Z+0000	"Debug.Trace.traceEventIO output Unicode characters by UTF-8 String.

 * http://www.haskell.org/ghc/docs/7.4.1/html/libraries/base-4.5.0.0/Debug-Trace.html#v:traceEventIO

""ghc-events show"" can show output Unicode characters' user event correctly.

{{{
import Debug.Trace
main = do
    traceEventIO ""テスト""
    putStrLn ""test""
}}}

{{{
$ ghc -O2 -threaded -eventlog Test.hs
[1 of 1] Compiling Main             ( Test.hs, Test.o )
Linking Test.exe ...

$ .\Test.exe +RTS -l
""test""
$ ghc-events show Test.eventlog > test.log
}}}

{{{
Event Types:
  (snip)

Events:
  (snip)
  1531003: cap 0: running thread 3
  1594090: cap 0: テスト
  1805086: cap 0: stopping thread 3 (making a foreign call)
  (snip)
}}}

But ThreadScope can't show Unicode characters' user event correctly. ThreadScope shows garbled characters.

This is bad. Unicode character is useful to find user event for me.

I'm using GHC 7.4.1 with threadscope 0.2.1 and gtk 0.12.3, on Windows."	shelarcy
4	Active Tickets	28	Graphs not redrawn on reload	ThreadScope		None	defect		new	2012-11-12T10:13:53Z+0000	2012-11-12T10:13:53Z+0000	When I load an eventlog, zoom in, update the eventlog (rerun the program that generates it) and finally reload eventlog in TS the graphs are not redrawn. I have to either zoom in or zoom out to see the new graphs.	killy9999
3	Active Tickets	29	Enhance handling of large eventlogs	ThreadScope		None	enhancement		new	2012-11-12T10:24:02Z+0000	2012-11-12T10:24:02Z+0000	When I enable detailed spark logging via -lf flag I end up with huge eventlog files (130MB). Attempting to load these into ThreadScope practically kills my OS - memory runs out, swapping begins and I am forced to kill TS (which takes some time before the OS actually responds and kills the process). This makes -lf flag useless for my program and I think this might not be uncommon situation. It would be good if TS supported some sort of lazy loading of big eventlogs, so users could at least view parts of the log.	killy9999
