Coder Social home page Coder Social logo

hvr / threadscope Goto Github PK

View Code? Open in Web Editor NEW

This project forked from haskell/threadscope

0.0 2.0 0.0 46.3 MB

Official upstream repo for ThreadScope (issue tracker still using trac)

Home Page: http://trac.haskell.org/ThreadScope

License: Other

Haskell 75.45% Makefile 0.99% C 0.05% HTML 0.27% TeX 22.91% Shell 0.32%

threadscope's Introduction

ThreadScope

Hackage Hackage-Deps Build Status Build status

Using pre-built binaries

Currently pre-built binaries for the following platforms are provided:

  • Ubuntu Trusty (64-bit)
  • OS X
  • Windows (x64)

GTK+2 needs to be installed for those binaries to work.

On OS X, gtk-mac-integration also needs to be installed.

brew install gtk+ gtk-mac-integration

On Windows, the MSYS2 is the recommended way to install GTK+2. In MSYS2 MINGW64 shell:

pacman -S $MINGW_PACKAGE_PREFIX-gtk2

then you can run the threadscope binary from the shell.

Building from source

Linux

GTK+2 is required to be installed. On Ubuntu-like systems:

sudo apt install libgtk2.0-dev

Then you can build threadscope using cabal:

cabal new-build

Or using stack:

stack setup
stack install

OS X

GTK+ and gtk-mac-integration are required.

brew install gtk+ gtk-mac-integration

Then you can build threadscope using cabal:

cabal new-build --constraint="gtk +have-quartz-gtk"

Or using stack:

stack setup
stack install --flag gtk:have-quartz-gtk

Windows

stack is the recommended tool to build threadscope on Windows.

CAVEAT: Currently gtk2 needs to be installed twice: one for stack's MSYS2 environment and another for local MSYS2 environment.

In command prompt:

stack setup
stack exec -- pacman --needed -Sy bash pacman pacman-mirrors msys2-runtime msys2-runtime-devel
stack exec -- pacman -Syu
stack exec -- pacman -Syuu
stack exec -- pacman -S base-devel mingw-w64-x86_64-pkg-config mingw-w64-x86_64-toolchain mingw-w64-x86_64-gtk2
stack install

Then in MSYS2 MINGW64 shell:

pacman -S $MINGW_PACKAGE_PREFIX-gtk2
echo 'export PATH=$APPDATA/local/bin:$PATH' >> .profile
source .profile
threadscope

threadscope's People

Contributors

mikolaj avatar dcoutts avatar simonmar avatar v1048576 avatar zenzike avatar bgamari avatar hvr avatar iliastsi avatar rcook avatar

Watchers

 avatar James Cloos avatar

threadscope's Issues

Print big times using large time units to avoid too long labels

Original reporter: MikolajKonarski

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.

ensure that spark counts in histogram are visible

Original reporter: kowey

When spark counts are printed for each histogram bucket, the black text on blue background can be difficult to read.

Perhaps white text should be used in those cases (keeping black text for when the bars are too small to fit the text in), or the text should systematically be placed above the bars.

Stack Space Overflow

Original reporter: ecrockett3@

I just installed threadscope-0.2.2, and profiled my program (running with -ls -N4). When I load threadscope, it starts loading HECs, but then complains that there was a stack space overflow and crashes.

I manually installed threadscope-0.2.2 with -rtsopts to allow me to change the stack space size. My program ran for ~4.5 minutes on four cores and threadscope required -K1000000000 before it would successfully load the graph.

ThreadScope shows garbled characters when using Unicode characters in user event

Original reporter: shelarcy

Debug.Trace.traceEventIO output Unicode characters by UTF-8 String.

"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.

Enhance handling of large eventlogs

Original reporter: jan.stolarek@

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.

Build errors on Threadscope: "ambiguous occurences"

Original reporter: sebas.chinoir@

Compiling version 0.2.2 from hackage with Cairo version 12.5.0 (current versions) gives a lot of "ambiguous occurences" errors for the variables height, width and Region on files GUI/Timeline/{Render,Timeline,SaveAs}.hs, for example:

GUI/Timeline/Render.hs:258:34:
Ambiguous occurrence height' It could refer to eitherGUI.Types.height',
imported from GUI.Types' at GUI/Timeline/Render.hs:19:1-16 orGraphics.Rendering.Cairo.height',
imported from Graphics.Rendering.Cairo' at GUI/Timeline/Render.hs:24:1-31 (and originally defined inGraphics.Rendering.Cairo.Types')

Hiding this variables from the Graphics.Rendering.Cairo package seems to solve the problem.

System: Arch Linux, x86-64

"there was a problem loading the eventlog"

Original reporter: kowey

I get sporadic failures loading eventlogs from runs of my program. That is, run it once, and I will generate an eventlog that loads, run it another time, and I get one that fails to load.

The sort of errors I get look something like

null lhs: len # 3, startTime514649, endTime = 514649

There was a problem loading the eventlog

[SparkDuration {startT # 514649, deltaCSparkStats {rateCreated = 0.0,
rateDud # 0.0, rateOverflowed0.0, rateConverted # 0.0, rateFizzled0.0,
rateGCd # 0.0, meanPool0.0, maxPool # 0.0, minPool0.0}}
,SparkDuration {startT # 514649, deltaCSparkStats {rateCreated = 0.0,
rateDud # 0.0, rateOverflowed0.0, rateConverted # 0.0, rateFizzled0.0,
rateGCd # 0.0, meanPool0.0, maxPool # 0.0, minPool0.0}}
,SparkDuration {startT # 514649, deltaCSparkStats {rateCreated = 0.0,
rateDud # 0.0, rateOverflowed0.0, rateConverted # 0.0, rateFizzled0.0,
rateGCd # 0.0, meanPool0.0, maxPool # 0.0, minPool0.0}}
]

This is with TS 0.2.1, ghc-events 0.3.1.0, programs built with GHC HEAD (7.3.20111118)

Note that TS itself is built with GHC 7.2.2

weird spark creation/conversion graph

Original reporter: kowey

Looks like one of my eventlogs causes a display error where lines are being drawn from the top-left corner of the screen. I have to zoom in a couple of times and then enable the spark creation/conversion traces to this result.

This is the latest patch in my repository (no reordering)

Tue Nov 29 21:13:14 GMT 2011 Mikolaj Konarski [email protected]

  • Accept many events starting at the same time; fix #9

Lag when loading an eventlog, if no mouse activity over the TS window

Original reporter: MikolajKonarski

Quite often there is a lag of a few seconds when an eventlog loads. It may not be just speed of analyzing the new events, however, because clicking on the TS window seems to speed it up. It's also not consistent.

Some more tests:

Disabling the progress window and the forced evaluation of data does not affect the lag.

The lag is the same when loading an eventlog as when starting with an eventlog from the command line.

Moving the mouse in the TS window speeds things up. Keeping the mouse outside the TS window delays drawing forever (most of the time). More specifically, moving the mouse over any graphical element drawn by us cancels the lag, while moving it over text areas or even switching tabs in the lower pane does not end the lag (most of the time).

The problem is much less pronounced, but still there in 0.2.1, and as pronounced as currently in 0.2.0, both compiled with the newest ghc-events and libs. So it looks like a problem not in TS.

Edit: tested with TS 0.2.0 and ghc-events 0.3.0.1 and the lag persists. I have a hunch -threaded could help, but no idea why there's a problem. Nobody reported a similar problem so far, so it may be specific to 7.4.1 or the newest gtk2hs or my gtk version, too.

put good spark things on the *bottom* of conversion/creation graphs

Original reporter: kowey

Presumably we are most interested in seeing how much green we get. It's hard to tell when they sit on top of a lot of grey or orange. Maybe the green bits should go on on the bottom.

I suspect having the green be the base makes for a more honest picture.

(I'm having a slightly hard time articulating this at the moment, maybe it's just a passing notion... feel free to grab me on IRC if I still think the same thing a few days from now)

App locks up when histogram canvas too narrow

Original reporter: MikolajKonarski

Ts 0.2.1: 100% CPU taken, TS does not respond to any keystrokes, mouse cursor stuck at the resize icon and clicking does not work anywhere on the desktop.

How to trigger this (completely reproducible for me): switch to the Spark sizes tab, resize the sidebar pane slowly (if fast, no problem occurs), when the histogram canvas is a few pixels wide, CPU usage spikes and the app stops responding to input. The best backtrace I managed to get is below.

Perhaps I should just refuse drawing the histogram if the canvas width is too small (just as I refuse if height is too small to avoid division by zero for some calculations). It would be better though to understand the problem first, so that we are sure it can't happen independently under different circumstances. The fact that it takes over the user's computer is worrying, too.

Program received signal SIGINT, Interrupt.
0x00007ffff414bf03 in __poll (fds=<value optimised out>, nfds=<value optimised out>, timeout=<value optimised out>) at ../sysdeps/unix/sysv/linux/poll.c:87
87  ../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
    in ../sysdeps/unix/sysv/linux/poll.c
(gdb) bt
#0  0x00007ffff414bf03 in __poll (fds=<value optimised out>, nfds=<value optimised out>, timeout=<value optimised out>) at ../sysdeps/unix/sysv/linux/poll.c:87
#1  0x00007ffff19c0512 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#2  0x00007ffff19c0a5f in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#3  0x00007ffff19c0ae4 in xcb_writev () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
#4  0x00007ffff3d792a7 in _XSend () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#5  0x00007ffff3d79665 in _XFlush () from /usr/lib/x86_64-linux-gnu/libX11.so.6
#6  0x00007ffff3316540 in XRenderCompositeTrapezoids () from /usr/lib/x86_64-linux-gnu/libXrender.so.1
#7  0x00007ffff646265f in _cairo_xlib_surface_composite_trapezoids (op=CAIRO_OPERATOR_OVER, pattern=0x7fffffff5200, abstract_dst=<value optimised out>, antialias=<value optimised out>, 
    src_x=593, src_y=35, dst_x=593, dst_y=35, width=5, height=490, traps=0x7fffffff4c18, num_traps=1, clip_region=0x0) at /build/buildd/cairo-1.10.2/src/cairo-xlib-surface.c:2979
#8  0x00007ffff6444a99 in _cairo_surface_composite_trapezoids (op=CAIRO_OPERATOR_OVER, pattern=0x7fffffff5200, dst=0x112be00, antialias=CAIRO_ANTIALIAS_DEFAULT, src_x=593, src_y=35, 
    dst_x=593, dst_y=35, width=5, height=490, traps=0x7fffffff4c18, num_traps=1, clip_region=0x0) at /build/buildd/cairo-1.10.2/src/cairo-surface.c:2309
#9  0x00007ffff64475e0 in _composite_traps_draw_func (closure=0x7fffffff4750, op=CAIRO_OPERATOR_OVER, src=<value optimised out>, dst=<value optimised out>, dst_x=0, 
    dst_y=<value optimised out>, extents=0x7fffffff50c0, clip_region=0x0) at /build/buildd/cairo-1.10.2/src/cairo-surface-fallback.c:561
#10 0x00007ffff6446703 in _clip_and_composite (clip=0x0, op=<value optimised out>, src=<value optimised out>, draw_func=0x7ffff6447530 <_composite_traps_draw_func>, 
    draw_closure=0x7fffffff4750, dst=0x112be00, extents=0x7fffffff50c0) at /build/buildd/cairo-1.10.2/src/cairo-surface-fallback.c:472
#11 0x00007ffff64471da in _clip_and_composite_trapezoids (src=0x7fffffff5200, op=CAIRO_OPERATOR_OVER, dst=0x112be00, traps=0x7fffffff4bf0, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0, 
    extents=0x7fffffff50c0) at /build/buildd/cairo-1.10.2/src/cairo-surface-fallback.c:875
#12 0x00007ffff6447cd3 in _cairo_surface_fallback_stroke (surface=0x112be00, op=CAIRO_OPERATOR_OVER, source=0x7fffffff5200, path=<value optimised out>, stroke_style=0x7fffffff5300, 
    ctm=0xffff20, ctm_inverse=0xffff50, tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at /build/buildd/cairo-1.10.2/src/cairo-surface-fallback.c:1113
#13 0x00007ffff6444511 in _cairo_surface_stroke (surface=0x112be00, op=CAIRO_OPERATOR_OVER, source=0x7fffffff5200, path=0x7ffff66b8c08, stroke_style=0x7fffffff5300, ctm=0xffff20, 
    ctm_inverse=0xffff50, tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x7fffffff5330) at /build/buildd/cairo-1.10.2/src/cairo-surface.c:2215
#14 0x00007ffff641dad1 in _cairo_gstate_stroke (gstate=0xfffe30, path=0x7ffff66b8c08) at /build/buildd/cairo-1.10.2/src/cairo-gstate.c:1166
#15 0x00007ffff6414c00 in *INT_cairo_stroke_preserve (cr=0x7ffff66b88a0) at /build/buildd/cairo-1.10.2/src/cairo.c:2406
#16 0x00007ffff6414c19 in *INT_cairo_stroke (cr=0x7ffff66b88a0) at /build/buildd/cairo-1.10.2/src/cairo.c:2379
#17 0x000000000092a06e in sntJ_info ()
#18 0x42b8000000010000 in ?? ()
#19 0x4018000000000001 in ?? ()
#20 0x0000000000000000 in ?? ()
(gdb) quit

malloc: pointer being freed was not allocated

Original reporter: kowey

$ 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

Threadscope fails to read partially written file

Original reporter: manpacket@

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.

Stack Space Overflow

Original reporter: ecrockett3@

I just installed threadscope-0.2.2, and profiled my program (running with -ls -N4). When I load threadscope, it starts loading HECs, but then complains that there was a stack space overflow and crashes.

I manually installed threadscope-0.2.2 with -rtsopts to allow me to change the stack space size. My program ran for ~4.5 minutes on four cores and threadscope required -K1000000000 before it would successfully load the graph. I would attach the .eventlog file, but it is 365mb...

Graphs not redrawn on reload

Original reporter: jan.stolarek@

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.

Please add (again) some facility for in-code bookmarks (v0.2.1)

Original reporter: brandon.m.simmons@

I've read the TODO for 0.2.1 and still don't understand why traceEvent messages as bookmarks were removed. Why not a little toggle or something? Or make the "Raw events" pane searchable?

I just spent 30 minutes utterly failing to find 3 events on the graph, flipping between "ghc-events show *.eventlog | less", and scrolling very delicately in "Raw events" trying to match two different time formats.

Meta note: how would I contribute to threadscope if I wanted to?

An invalid eventlog is generated

Original reporter: MikolajKonarski

See the eventlog sudoku3.eventlog.works.bz2 in #9 and the related discussion. Here's what Nicolas says:

22:09 <@zenzike> mikolaj: there is indeed something wrong with the sudoko3.eventlog.works file: there'a a running thread that goes back into the runnable state
22:18 <@zenzike> mikolaj: the thing is that its' not *that* broken
22:18 <@zenzike> mikolaj: it's just doing something that it shouldn't fairly early on
22:19 <@zenzike> mikolaj: the rest of the trace looks good ... I suspect that either there's a bug in the RTS, or I'm being too strict
22:24 <@zenzike> should a thread that is running fire off a "thread runnable" event?

histogram drawing loops in poll.c

Original reporter: MikolajKonarski

Always reproducible on my machine. Could somebody try on theirs? Caused probably by the patch "Put the vertical ruler in the middle of histogram, if only the number of bars even"

Instructions: open the eventlog from https://github.com/Mikolaj/threadscope-sparkgraph-demo/blob/master/parlist.eventlog
Now select the histogram tab ("Sparks"). CPU usage goes up to 100% and the window freezes. Gdb backtrace after ^C:

Program received signal SIGINT, Interrupt.
0x00007ffff414bf03 in __poll (fds=<value optimised out>, nfds=<value optimised out>, timeout=<value optimised out>) at ../sysdeps/unix/sysv/linux/poll.c:87
87  ../sysdeps/unix/sysv/linux/poll.c: No such file or directory.
    in ../sysdeps/unix/sysv/linux/poll.c
(gdb) bt full
#0  0x00007ffff414bf03 in __poll (fds=<value optimised out>, nfds=<value optimised out>, timeout=<value optimised out>) at ../sysdeps/unix/sysv/linux/poll.c:87
        resultvar = 18446744073709551100
        oldtype = 0
        result = <value optimised out>
#1  0x00007ffff19c0512 in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
No symbol table info available.
#2  0x00007ffff19c0a5f in ?? () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
No symbol table info available.
#3  0x00007ffff19c0ae4 in xcb_writev () from /usr/lib/x86_64-linux-gnu/libxcb.so.1
No symbol table info available.
#4  0x00007ffff3d792a7 in _XSend () from /usr/lib/x86_64-linux-gnu/libX11.so.6
No symbol table info available.
#5  0x00007ffff3d79665 in _XFlush () from /usr/lib/x86_64-linux-gnu/libX11.so.6
No symbol table info available.
#6  0x00007ffff3316540 in XRenderCompositeTrapezoids () from /usr/lib/x86_64-linux-gnu/libXrender.so.1
No symbol table info available.
#7  0x00007ffff646265f in _cairo_xlib_surface_composite_trapezoids (op=CAIRO_OPERATOR_OVER, pattern=0x7fffffff5230, abstract_dst=<value optimised out>, antialias=<value optimised out>, 
    src_x=112, src_y=388, dst_x=112, dst_y=388, width=15, height=111, traps=0x7fffffff4c48, num_traps=1, clip_region=0x0) at /build/buildd/cairo-1.10.2/src/cairo-xlib-surface.c:2979
        attributes # {matrix{xx # 1, yx0, xy # 0, yy1, x0 # 0, y00}, extend # CAIRO_EXTEND_REPEAT, filterCAIRO_FILTER_NEAREST, has_component_alpha # 0, x_offset0, 
          y_offset # 0, extra0x7ffff4416c60}
        dst = <value optimised out>
        src = 0x11038f0
        display = 0x1059680
        status = 0
        operation = <value optimised out>
        render_reference_x = <value optimised out>
        render_reference_y = <value optimised out>
        pict_format = 0xe6a6d0
        xtraps_stack # {{top26279936, bottom # 31719424, left{p1 # {x7340032, y # 25427968}, p2{x # 7340032, y32702464}}, right # {p1{x # 7372800, y26279936}, p2 = {
                x # 7372800, y31719424```, {top # 0, bottom0, left # {p1{x # 244, y1081692160}, p2 # {x19, y # 2}}, right{p1 # {x-51152, y # 32767}, p2{x = -44448, 
                y # 32767}}}, {top244, bottom # 483, left{p1 # {x-51152, y # 32767}, p2{x # 15115984, y0}}, right # {p1{x # 17671040, y0}, p2 # {x31718912, 
                y # 31719424}}}, {top16028160, bottom # 31718912, left{p1 # {x16028160, y # 31719424}, p2{x # 19553024, y31718912}}, right # {p1{x = 19553024, 
                y # 31719424}, p2{x # -51304, y32767}}}, {top # 2922, bottom0, left # {p1{x # -38272, y32767}, p2 # {x-49808, y # 32767}}, right{p1 # {x-163536850, 
                y # 32767}, p2{x # -38272, y32767}}}, {top # 0, bottom0, left # {p1{x # 0, y0}, p2 # {x-163533917, y # 32767}}, right{p1 # {x252928, y = 32767}, 
              p2 # {x2486, y # 0}}}, {top-48704, bottom # 32767, left{p1 # {x128, y # 32767}, p2{x # -36608, y32767}}, right # {p1{x # 1, y0}, p2 # {x0, 
                y # 0}}}, {top-48632, bottom # 32767, left{p1 # {x-50944, y # 32767}, p2{x # -47632, y32767}}, right # {p1{x # -50944, y32767}, p2 # {x0, y = 0}}}, {
            top # 2, bottom253477, left # {p1{x # 1573, y32767}, p2 # {x253477, y # 1573}}, right{p1 # {x252965, y # 2085}, p2{x # 1573, y2085}}}, {top = 1, 
            bottom # 32767, left{p1 # {x-50208, y # 32767}, p2{x # -50288, y32767}}, right # {p1{x # 0, y0}, p2 # {x1755, y # 32767}}}, {top2, bottom = 253659, 
            left # {p1{x # 1755, y32767}, p2 # {x253659, y # 1755}}, right{p1 # {x253147, y # 2267}, p2{x # 1755, y2267}}}, {top # -1, bottom32767, left # {p1{
                x # -49808, y32767}, p2 # {x0, y # 0}}, right{p1 # {x0, y # 0}, p2{x # -1, y32767}}}, {top # 2, bottom252965, left # {p1{x # 1243, y0}, p2 = {
                x # 252965, y1243}}, right # {p1{x # 253477, y1755}, p2 # {x1243, y # 1755}}}, {top1, bottom # 0, left{p1 # {x-50928, y # 32767}, p2{x = -50448, 
                y # 32767}}, right{p1 # {x0, y # 0}, p2{x # 1573, y0}}}, {top # 2, bottom253147, left # {p1{x # 1061, y0}, p2 # {x253147, y # 1061}}, right{p1 = {
                x # 253659, y1573}, p2 # {x1061, y # 1573}}}, {top-1, bottom # 32767, left{p1 # {x-50528, y # 32767}, p2{x # 0, y0}}, right # {p1{x # 0, y0}, 
              p2 # {x1, y # 32767}}}, {top2, bottom # 253568, left{p1 # {x1664, y # 0}, p2{x # 253568, y1664}}, right # {p1{x # 253477, y1755}, p2 # {x1664, 
                y # 1755}}}, {top-1, bottom # 0, left{p1 # {x-50768, y # 32767}, p2{x # -50448, y32767}}, right # {p1{x # 0, y0}, p2 # {x18258592, y = 0}}}, {
            top # 2, bottom253477, left # {p1{x # 1573, y32767}, p2 # {x253477, y # 1573}}, right{p1 # {x253568, y # 1664}, p2{x # 1573, y1664}}}, {top = -1, 
            bottom # 32767, left{p1 # {x-50768, y # 32767}, p2{x # -50368, y32767}}, right # {p1{x # 0, y0}, p2 # {x-50312, y # 32767}}}, {top2, bottom = 253750, 
            left # {p1{x # 1664, y0}, p2 # {x253750, y # 1664}}, right{p1 # {x253659, y # 1755}, p2{x # 1664, y1755}}}, {top # -1, bottom0, left # {p1{
                x # -50928, y32767}, p2 # {x0, y # 0}}, right{p1 # {x0, y # 0}, p2{x # 1573, y0}}}, {top # 2, bottom253659, left # {p1{x # 1573, y32767}, p2 = {
                x # 253659, y1573}}, right # {p1{x # 253750, y1664}, p2 # {x1573, y # 1664}}}, {top-1, bottom # 32767, left{p1 # {x-50608, y # 32767}, p2{x = 0, 
---Type <return> to continue, or q <return> to quit---
                y # 0}}, right{p1 # {x0, y # 0}, p2{x # 1664, y32767}}}, {top # 2, bottom253184, left # {p1{x # 1152, y0}, p2 # {x253184, y # 1152}}, right{p1 = {
                x # 253184, y2176}, p2 # {x1152, y # 2176}}}, {top-1, bottom # 32767, left{p1 # {x-49808, y # 32767}, p2{x # -50848, y32767}}, right # {p1{x = 0, 
                y # 0}, p2{x # -153613315, y32767}}}, {top # 17674808, bottom0, left # {p1{x # 15827824, y0}, p2 # {x2, y # 0}}, right{p1 # {x-153612593, 
                y # 32767}, p2{x # 0, y0}}}, {top # 0, bottom32767, left # {p1{x # 17675068, y0}, p2 # {x-153613534, y # 32767}}, right{p1 # {x-49584, y = 32767}, 
              p2 # {x-153591534, y # 32767}}}, {top0, bottom # 0, left{p1 # {x0, y # 32767}, p2{x # 253056, y1152}}, right # {p1{x # -153613534, y32767}, p2 = {
                x # -49536, y32767}}}, {top # 15956448, bottom0, left # {p1{x # -50208, y3}, p2 # {x-468257996, y # 32767}}, right{p1 # {x0, y # 3}, p2{
                x # -468258046, y32767}}}, {top # 0, bottom252928, left # {p1{x # 15956448, y3}, p2 # {x6, y # 0}}, right{p1 # {x1, y # 32767}, p2{x = -468258680, 
                y # 32767}}}, {top-468258044, bottom # 32767, left{p1 # {x-153613600, y # 32767}, p2{x # 0, y1}}, right # {p1{x # -468258002, y32767}, p2 = {
                x # -468258680, y32767}}}, {top # -468255488, bottom32767, left # {p1{x # 10, y0}, p2 # {x30935552, y # 3}}, right{p1 # {x1114112, y # 8}, p2{x = 1, 
                y # 1}}}, {top-468258046, bottom # 32767, left{p1 # {x-49584, y # 32767}, p2{x # 15956448, y0}}, right # {p1{x # 1114112, y0}, p2 # {x8, y = 0}}}, {
            top # 0, bottom0, left # {p1{x # -153590571, y32767}, p2 # {x2, y # 32767}}, right{p1 # {x-49840, y # 32767}, p2{x # -51640, y32767}}}, {top = -51728, 
            bottom # 32767, left{p1 # {x-51904, y # 32767}, p2{x # -51816, y32767}}, right # {p1{x # 0, y0}, p2 # {x-153595787, y # 32767}}}, {top-468270512, 
            bottom # 32767, left{p1 # {x-49648, y # 32767}, p2{x # 1, y0}}, right # {p1{x # -153566739, y32767}, p2 # {x206993163, y # 0}}}, {top12, bottom = 458, 
            left # {p1{x # 0, y1081909248}, p2 # {x119, y # 0}}, right{p1 # {x0, y # 0}, p2{x # 0, y1081909248}}}, {top # 86, bottom0, left # {p1{x # 0, y0}, 
              p2 # {x0, y # 1081909248}}, right{p1 # {x12, y # 0}, p2{x # 0, y0}}}, {top # 0, bottom1081909248, left # {p1{x # 86, y0}, p2 # {x0, y = 0}}, 
            right # {p1{x # 0, y1081856000}, p2 # {x2, y # 0}}}, {top17671040, bottom # 0, left{p1 # {x8, y # 0}, p2{x # 17671040, y0}}, right # {p1{x = 100, 
                y # 0}, p2{x # -44816, y32767}}}, {top # -163287899, bottom32767, left # {p1{x # -46048, y32767}, p2 # {x-44496, y # 32767}}, right{p1 # {x-44352, 
                y # 32767}, p2{x # 5, y0}}}, {top # -44736, bottom32767, left # {p1{x # -163300235, y32767}, p2 # {x5, y # 0}}, right{p1 # {x17671040, y # 0}, p2{
                x # -49504, y32767}}}, {top # -49504, bottom32767, left # {p1{x # 100, y0}, p2 # {x-163287485, y # 32767}}, right{p1 # {x-45968, y # 32767}, p2{
                x # -163287899, y32767}}}, {top # -45952, bottom32767, left # {p1{x # 14420608, y0}, p2 # {x-49456, y # 32767}}, right{p1 # {x10945182, y # 0}, p2{
                x # 0, y0}}}, {top # 0, bottom1, left # {p1{x # -49424, y32767}, p2 # {x11010214, y # 0}}, right{p1 # {x-49224, y # 32767}, p2{x = -163342823, 
                y # 26}}}, {top388, bottom # 0, left{p1 # {x-197039008, y # 32767}, p2{x # 0, y0}}, right # {p1{x # 0, y0}, p2 # {x0, y # 0}}}, {top2, 
            bottom # 0, left{p1 # {x0, y # 0}, p2{x # 112, y0}}, right # {p1{x # 388, y0}, p2 # {x0, y # 0}}}, {top1, bottom # 0, left{p1 # {x112, y = 0}, 
              p2 # {x2, y # 0}}, right{p1 # {x0, y # 0}, p2{x # -44496, y32767}}}, {top # 2, bottom0, left # {p1{x # -44496, y32767}, p2 # {x388, y = 0}}, 
            right # {p1{x # 17671040, y0}, p2 # {x111, y # 0}}}, {top17671304, bottom # 0, left{p1 # {x0, y # 0}, p2{x # -48272, y32767}}, right # {p1{
                x # -163296721, y32767}, p2 # {x582, y = 0}}}}
        xtraps = 0x7fffffff37c0
        i = <value optimised out>
#8  0x00007ffff6444a99 in _cairo_surface_composite_trapezoids (op=CAIRO_OPERATOR_OVER, pattern=0x7fffffff5230, dst=0x10da380, antialias=CAIRO_ANTIALIAS_DEFAULT, src_x=112, src_y=388, 
    dst_x=112, dst_y=388, width=15, height=111, traps=0x7fffffff4c48, num_traps=1, clip_region=0x0) at /build/buildd/cairo-1.10.2/src/cairo-surface.c:2309
        status = <value optimised out>
        __PRETTY_FUNCTION__.10657 = "_cairo_surface_composite_trapezoids"
#9  0x00007ffff64475e0 in _composite_traps_draw_func (closure=0x7fffffff4780, op=CAIRO_OPERATOR_OVER, src=<value optimised out>, dst=<value optimised out>, dst_x=0, 
    dst_y=<value optimised out>, extents=0x7fffffff50f0, clip_region=0x0) at /build/buildd/cairo-1.10.2/src/cairo-surface-fallback.c:561
        info = 0x7fffffff4780
        status = <value optimised out>
        extents_region = 0x0
#10 0x00007ffff6446703 in _clip_and_composite (clip=0x0, op=<value optimised out>, src=<value optimised out>, draw_func=0x7ffff6447530 <_composite_traps_draw_func>, 
    draw_closure=0x7fffffff4780, dst=0x10da380, extents=0x7fffffff50f0) at /build/buildd/cairo-1.10.2/src/cairo-surface-fallback.c:472
        clip_surface = <value optimised out>
        clip_region = 0x0
        status = <value optimised out>
#11 0x00007ffff64471da in _clip_and_composite_trapezoids (src=0x7fffffff5230, op=CAIRO_OPERATOR_OVER, dst=0x10da380, traps=0x7fffffff4c20, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0, 
    extents=0x7fffffff50f0) at /build/buildd/cairo-1.10.2/src/cairo-surface-fallback.c:875
        traps_info # {traps0x7fffffff4c20, antialias = CAIRO_ANTIALIAS_DEFAULT}
        clip_region = 0x0
        clip_surface = <value optimised out>
        status = <value optimised out>
#12 0x00007ffff6447cd3 in _cairo_surface_fallback_stroke (surface=0x10da380, op=CAIRO_OPERATOR_OVER, source=0x7fffffff5230, path=<value optimised out>, stroke_style=0x7fffffff5330, 
    ctm=0x110e640, ctm_inverse=0x110e670, tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x0) at /build/buildd/cairo-1.10.2/src/cairo-surface-fallback.c:1113
---Type <return> to continue, or q <return> to quit---
        polygon # {statusCAIRO_STATUS_SUCCESS, first_point # {x32767, y # 2}, last_point{x # 0, y17671040}, current_point # {x0, y # -44448}, current_edge{dx = 32767, 
            dy # 0}, has_current_point0, has_current_edge # 0, extents{p1 # {x2147483647, y # 2147483647}, p2{x # -2147483648, y-2147483648}}, limit # {p1{x = 28672, 
              y # 99328}, p2{x # 32512, y127744}}, limits # 0x7fffffff4ed0, num_limits1, num_edges # 0, edges_size32, edges # 0x7fffffff48a0, edges_embedded{{line # {p1{
                  x # 25280, y0}, p2 # {x0, y # 2147483647}}, top2147483647, bottom # 0, dir0}, {line # {p1{x # 2147483647, y2147483647}, p2 # {x-2147483648, 
                  y # -2147483648}}, top62464, bottom # 123648, dir76544}, {line # {p1{x # 123904, y0}, p2 # {x-45264, y # 32767}}, top1, bottom # 0, dir32}, {line = {
                p1 # {x28672, y # -46848}, p2{x # 32767, y104704}}, top # 102656, bottom102720, dir # -1}, {line{p1 # {x25472, y # 123904}, p2{x # 25408, y124015}}, 
              top # 123904, bottom124015, dir # -1}, {line{p1 # {x25216, y # 123904}, p2{x # 25280, y124015}}, top # 123904, bottom124015, dir # 1}, {line{p1 = {
                  x # -2048, y1119354879}, p2 # {x-46720, y # 32767}}, top0, bottom # 1076101120, dir17574400}, {line # {p1{x # 0, y0}, p2 # {x0, y # 0}}, top0, 
              bottom # 0, dir0}, {line # {p1{x # 11, y0}, p2 # {x0, y # 1076101120}}, top0, bottom # 1079083008, dir119}, {line # {p1{x # 0, y0}, p2 = {
                  x # 1076625408, y0}}, top # 1079083008, bottom86, dir # 0}, {line{p1 # {x0, y # 1077215232}, p2{x # 0, y1079083008}}, top # 12, bottom0, dir = 0}, {
              line # {p1{x # 1077608448, y0}, p2 # {x1079083008, y # 86}}, top0, bottom # 0, dir1078001664}, {line # {p1{x # 0, y1078755328}, p2 # {x3, y = 0}}, 
              top # 0, bottom1078198272, dir # 0}, {line{p1 # {x1078329344, y # 3}, p2{x # 0, y0}}, top # 1078460416, bottom0, dir # 1077870592}, {line{p1 = {
                  x # -173405051, y0}, p2 # {x16559968, y # 0}}, top-46192, bottom # 32767, dir41}, {line # {p1{x # 0, y-46312}, p2 # {x32767, y = -46320}}, 
              top # 32767, bottom-179840072, dir # 32767}, {line{p1 # {x41, y # 0}, p2{x # -165903510, y32767}}, top # 17560208, bottom0, dir # 1}, {line{p1 = {
                  x # 1072693248, y15574376}, p2 # {x0, y # 0}}, top25, bottom # 15574376, dir0}, {line # {p1{x # 41, y0}, p2 # {x16646176, y # 0}}, top15919776, 
              bottom # 0, dir17436976}, {line # {p1{x # 0, y0}, p2 # {x0, y # 0}}, top0, bottom # -46192, dir32767}, {line # {p1{x # 17442183, y0}, p2 = {
                  x # -182509405, y32767}}, top # 0, bottom0, dir # -46192}, {line{p1 # {x32767, y # 0}, p2{x # 0, y15813792}}, top # 0, bottom0, dir # 0}, {line{
                p1 # {x-182740034, y # 32767}, p2{x # 0, y0}}, top # -173405418, bottom32767, dir # -46192}, {line{p1 # {x32767, y # 0}, p2{x # 0, y16572688}}, 
              top # 0, bottom0, dir # 0}, {line{p1 # {x20, y # 0}, p2{x # 0, y1080095296}}, top # 0, bottom1079246720, dir # 21}, {line{p1 # {x0, y # 0}, p2{
                  x # 1076625408, y0}}, top # 1079244608, bottom19, dir # 0}, {line{p1 # {x0, y # 1078820864}, p2{x # 0, y1076953088}}, top # 19, bottom0, dir = 0}, {
              line # {p1{x # 1079033856, y0}, p2 # {x1076953088, y # 19}}, top0, bottom # 0, dir1079164928}, {line # {p1{x # 0, y1076953088}, p2 # {x19, y = 0}}, 
              top # 0, bottom1079296000, dir # 0}, {line{p1 # {x1076953088, y # 4}, p2{x # 0, y17738752}}, top # 0, bottom17792664, dir # 0}, {line{p1 # {x17739280, 
                  y # 0}, p2{x # -45808, y32767}}, top # -163449902, bottom32767, dir # 17738752}, {line{p1 # {x0, y # 1}, p2{x # 0, y-45912}}, top = 32767, 
              bottom # -163320700, dir32767}}}
        traps # {statusCAIRO_STATUS_SUCCESS, limits # 0x7fffffff4ed0, num_limits1, maybe_region # 0, has_intersections0, is_rectilinear # 1, is_rectangular1, num_traps = 1, 
          traps_size # 16, traps0x7fffffff4c48, traps_embedded # {{top102656, bottom # 123904, left{p1 # {x28672, y # 99328}, p2{x # 28672, y127744}}, right # {p1{
                  x # 28800, y102656}, p2 # {x28800, y # 123904}}}, {top124030, bottom # 124032, left{p1 # {x76251, y # 124030}, p2{x # 76251, y124032}}, right = {
                p1 # {x76507, y # 124030}, p2{x # 76507, y124032}}}, {top # 123774, bottom124030, left # {p1{x # 62738, y123774}, p2 # {x14420608, y # 0}}, right{
                p1 # {x-45872, y # 32767}, p2{x # 10945182, y0}}}, {top # 123774, bottom123776, left # {p1{x # 62482, y1}, p2 # {x-45840, y # 32767}}, right{p1 = {
                  x # 11010214, y0}, p2 # {x62738, y # 123776}}}, {top14420608, bottom # 0, left{p1 # {x-45808, y # 32767}, p2{x # 10945182, y0}}, right # {p1{
                  x # 0, y0}, p2 # {x0, y # 1}}}, {top-45776, bottom # 32767, left{p1 # {x11010214, y # 0}, p2{x # 0, y0}}, right # {p1{x # -44240, y26}, p2 = {
                  x # -44496, y32767}}}, {top # -197039008, bottom32767, left # {p1{x # 0, y0}, p2 # {x0, y # 0}}, right{p1 # {x0, y # 0}, p2{x # 2, y0}}}, {
              top # 0, bottom0, left # {p1{x # 0, y644218880}, p2 # {x0, y # 0}}, right{p1 # {x0, y # 0}, p2{x # -571364311, y32767}}}, {top # 17884688, bottom0, 
              left # {p1{x # 17884832, y0}, p2 # {x-571364311, y # 32767}}, right{p1 # {x-526593856, y # 32767}, p2{x # -44480, y32767}}}, {top # 16236376, bottom0, 
              left # {p1{x # -44496, y32767}, p2 # {x16236224, y # 0}}, right{p1 # {x0, y # 0}, p2{x # -44496, y32767}}}, {top # 858993459, bottom1069757235, 
              left # {p1{x # -44632, y32767}, p2 # {x-163539776, y # 32767}}, right{p1 # {x582, y # 0}, p2{x # 51, y0}}}, {top # 0, bottom0, left # {p1{x = 1, 
                  y # 0}, p2{x # 0, y0}}, right # {p1{x # 0, y0}, p2 # {x-45312, y # 32767}}}, {top14420608, bottom # 0, left{p1 # {x-45488, y # 32767}, p2{
                  x # 10945182, y0}}, right # {p1{x # 0, y0}, p2 # {x1, y # 1}}}, {top-45456, bottom # 32767, left{p1 # {x11010214, y # 0}, p2{x = -45248, 
                  y # 32767}}, right{p1 # {x0, y # 0}, p2{x # -44304, y32767}}}, {top # -197039008, bottom32767, left # {p1{x # 0, y0}, p2 # {x0, y # 0}}, right{
                p1 # {x0, y # 0}, p2{x # 2, y0}}}, {top # 0, bottom0, left # {p1{x # 0, y0}, p2 # {x2, y # 0}}, right{p1 # {x0, y # 1359872}, p2{
                  x # -526561648, y32767}}}}}
        boxes_stack # {{p1{x # 28672, y99328}, p2 # {x32512, y # 127744}}, {p1{x # -526593856, y32767}, p2 # {x14420608, y # 0}}, {p1{x # -45296, y32767}, p2 = {
              x # 10945182, y0}}, {p1 # {x2098047, y # 85917696}, p2{x # -160553161, y32767}}, {p1 # {x-32024, y # 32767}, p2{x # 8102, y65535}}, {p1 # {x5701719, 
              y # 5898327}, p2{x # 14420608, y0}}, {p1 # {x-45232, y # 32767}, p2{x # 10945182, y0}}, {p1 # {x16843009, y # 16843009}, p2{x # 65535, y1}}, {p1 = {
              x # -45200, y32767}, p2 # {x11010214, y # 0}}, {p1{x # 0, y0}, p2 # {x65535, y # 26}}, {p1{x # -526561560, y32767}, p2 # {x-197039008, y = 32767}}, {
            p1 # {x0, y # 0}, p2{x # 0, y0}}, {p1 # {x0, y # 0}, p2{x # 2, y0}}, {p1 # {x0, y # 0}, p2{x # -526561576, y32767}}, {p1 # {x0, y # 0}, p2{
              x # -526561576, y32767}}, {p1 # {x-526561648, y # 32767}, p2{x # -256855536, y32767}}, {p1 # {x14420632, y # 0}, p2{x # -256855552, y32767}}, {p1 = {
              x # -526593856, y32767}, p2 # {x-526561576, y # 32767}}, {p1{x # 0, y0}, p2 # {x-526561560, y # 32767}}, {p1{x # 0, y0}, p2 # {x0, y # 0}}, {p1{
              x # -256900416, y32767}, p2 # {x-526561576, y # 32767}}, {p1{x # -44080, y32767}, p2 # {x10936388, y # 0}}, {p1{x # 518, y0}, p2 # {x51, y = 0}}, {
            p1 # {x0, y # 0}, p2{x # 1, y0}}, {p1 # {x0, y # 0}, p2{x # 0, y0}}, {p1 # {x-44736, y # 32767}, p2{x # 0, y0}}, {p1 # {x0, y # 0}, p2{x = 0, 
---Type <return> to continue, or q <return> to quit---
              y # 0}}, {p1{x # -129810414, y-1134233975}, p2 # {x0, y # 0}}, {p1{x # 1060874752, y1073783474}, p2 # {x0, y # 0}}, {p1{x # 0, y0}, p2 # {x0, 
              y # 0}}, {p1{x # 0, y0}, p2 # {x65535, y # 0}}, {p1{x # 0, y-1926234112}, p2 # {x16329, y = 0}}}
        clip_boxes = 0x7fffffff4ed0
        num_boxes = 1
        extents # {source{x # -8388608, y-8388608, width # 16777215, height16777215}, mask # {x97, y # 386, width30, height # 113}, bounded{x # 112, y388, width = 15, 
            height # 111}, unbounded{x # 112, y388, width # 898, height126}, is_bounded = 6}
        rect # {x0, y # 0, width1012, height = 537}
        status = <value optimised out>
        __PRETTY_FUNCTION__.10363 = "_cairo_surface_fallback_stroke"
#13 0x00007ffff6444511 in _cairo_surface_stroke (surface=0x10da380, op=CAIRO_OPERATOR_OVER, source=0x7fffffff5230, path=0x7ffff66b8c08, stroke_style=0x7fffffff5330, ctm=0x110e640, 
    ctm_inverse=0x110e670, tolerance=0.10000000000000001, antialias=CAIRO_ANTIALIAS_DEFAULT, clip=0x7fffffff5360) at /build/buildd/cairo-1.10.2/src/cairo-surface.c:2215
        status = <value optimised out>
#14 0x00007ffff641dad1 in _cairo_gstate_stroke (gstate=0x110e550, path=0x7ffff66b8c08) at /build/buildd/cairo-1.10.2/src/cairo-gstate.c:1166
        source_pattern # {typeCAIRO_PATTERN_TYPE_SOLID, base # {typeCAIRO_PATTERN_TYPE_SOLID, ref_count # {ref_count0}, status # CAIRO_STATUS_SUCCESS, user_data{size = 0, 
              num_elements # 0, element_size24, elements # 0x0, is_snapshot0}, matrix # {xx1, yx # 0, xy0, yy # 1, x0-112, y0 # -401}, filterCAIRO_FILTER_GOOD, 
            extend # CAIRO_EXTEND_PAD, has_component_alpha0}, solid # {base{type # CAIRO_PATTERN_TYPE_SOLID, ref_count{ref_count # 0}, statusCAIRO_STATUS_SUCCESS, user_data = {
                size # 0, num_elements0, element_size # 24, elements0x0, is_snapshot # 0}, matrix{xx # 1, yx0, xy # 0, yy1, x0 # -112, y0-401}, 
              filter # CAIRO_FILTER_GOOD, extendCAIRO_EXTEND_PAD, has_component_alpha # 0}, color{red # 0, green0, blue # 0, alpha0.14999999999999999, red_short = 0, 
              green_short # 0, blue_short0, alpha_short # 9830}}, surface{base # {typeCAIRO_PATTERN_TYPE_SOLID, ref_count # {ref_count0}, status = CAIRO_STATUS_SUCCESS, 
              user_data # {size0, num_elements # 0, element_size24, elements # 0x0, is_snapshot0}, matrix # {xx1, yx # 0, xy0, yy # 1, x0-112, y0 = -401}, 
              filter # CAIRO_FILTER_GOOD, extendCAIRO_EXTEND_PAD, has_component_alpha # 0}, surface0x0}, gradient # {base{base # {typeCAIRO_PATTERN_TYPE_SOLID, ref_count = {
                  ref_count # 0}, statusCAIRO_STATUS_SUCCESS, user_data # {size0, num_elements # 0, element_size24, elements # 0x0, is_snapshot0}, matrix # {xx1, yx = 0, 
                  xy # 0, yy1, x0 # -112, y0-401}, filter # CAIRO_FILTER_GOOD, extendCAIRO_EXTEND_PAD, has_component_alpha # 0}, n_stops0, stops_size # 0, stops0x0, 
              stops_embedded # {{offset0, color # {red0.14999999999999999, green # 1.0400027115073853e-123, blue7.1247270049434466e-317, alpha = 6.9533558056476769e-310, 
                    red_short # 20448, green_short57501, blue_short # 32767, alpha_short0}}, {offset # 5.484855933468515e-317, color{red = 7.1247270049434466e-317, 
                    green # 6.9533558056524199e-310, blue5.4344780358246664e-317, alpha # 6.9533293174927656e-310, red_short2688, green_short # 220, blue_short0, 
                    alpha_short # 0}}}}, linear{base # {base{type # CAIRO_PATTERN_TYPE_SOLID, ref_count{ref_count # 0}, statusCAIRO_STATUS_SUCCESS, user_data # {size0, 
                    num_elements # 0, element_size24, elements # 0x0, is_snapshot0}, matrix # {xx1, yx # 0, xy0, yy # 1, x0-112, y0 # -401}, filterCAIRO_FILTER_GOOD, 
                  extend # CAIRO_EXTEND_PAD, has_component_alpha0}, n_stops # 0, stops_size0, stops # 0x0, stops_embedded{{offset # 0, color{red = 0.14999999999999999, 
                      green # 1.0400027115073853e-123, blue7.1247270049434466e-317, alpha # 6.9533558056476769e-310, red_short20448, green_short # 57501, blue_short32767, 
                      alpha_short # 0}}, {offset5.484855933468515e-317, color # {red7.1247270049434466e-317, green # 6.9533558056524199e-310, blue5.4344780358246664e-317, 
                      alpha # 6.9533293174927656e-310, red_short2688, green_short # 220, blue_short0, alpha_short # 0}}}}, p1{x # 8, y0}, p2 # {x-526561304, y = 32767}}, 
            radial # {base{base # {typeCAIRO_PATTERN_TYPE_SOLID, ref_count # {ref_count0}, status # CAIRO_STATUS_SUCCESS, user_data{size # 0, num_elements0, 
                    element_size # 24, elements0x0, is_snapshot # 0}, matrix{xx # 1, yx0, xy # 0, yy1, x0 # -112, y0-401}, filter = CAIRO_FILTER_GOOD, 
                  extend # CAIRO_EXTEND_PAD, has_component_alpha0}, n_stops # 0, stops_size0, stops # 0x0, stops_embedded{{offset # 0, color{red = 0.14999999999999999, 
                      green # 1.0400027115073853e-123, blue7.1247270049434466e-317, alpha # 6.9533558056476769e-310, red_short20448, green_short # 57501, blue_short32767, 
                      alpha_short # 0}}, {offset5.484855933468515e-317, color # {red7.1247270049434466e-317, green # 6.9533558056524199e-310, blue5.4344780358246664e-317, 
                      alpha # 6.9533293174927656e-310, red_short2688, green_short # 220, blue_short0, alpha_short # 0}}}}, c1{x # 8, y0}, r1 # -526561304, c2{x = 32767, 
                y # 11100376}, r20}}}
        style # {line_width1, line_cap # CAIRO_LINE_CAP_BUTT, line_joinCAIRO_LINE_JOIN_MITER, miter_limit # 10, dash0x0, num_dashes # 0, dash_offset0}
        dash = {6.9533558056563725e-310, 5.4269000569487534e-317}
        clip # {path0x10c9560, all_clipped = 0}
        status = <value optimised out>
#15 0x00007ffff6414c00 in *INT_cairo_stroke_preserve (cr=0x7ffff66b88a0) at /build/buildd/cairo-1.10.2/src/cairo.c:2406
        status = 4294966780
#16 0x00007ffff6414c19 in *INT_cairo_stroke (cr=0x7ffff66b88a0) at /build/buildd/cairo-1.10.2/src/cairo.c:2379
No locals.
#17 0x000000000090941e in sntJ_info ()
No symbol table info available.
#18 0x0000000000000001 in ?? ()
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#19 0x00007fffffff53e8 in ?? ()
No symbol table info available.
#20 0x0000000101154590 in ?? ()
No symbol table info available.
#21 0x00007fffffff53f8 in ?? ()
No symbol table info available.
#22 0x00007fffffff5420 in ?? ()
No symbol table info available.
#23 0x00007ffff6428b8f in _cairo_matrix_to_pixman_matrix (matrix=0x7fffe09d4f10, pixman_transform=0x7fffddf1ac29, xc=0, yc=7.1938566701095539e-317)
    at /build/buildd/cairo-1.10.2/src/cairo-matrix.c:921
No locals.
#24 0x00007ffff6461e97 in _cairo_xlib_surface_set_matrix (surface=0x10cc800, attributes=0x7fffffff60d0, xc=<value optimised out>, yc=<value optimised out>, display=<value optimised out>)
    at /build/buildd/cairo-1.10.2/src/cairo-xlib-surface.c:1634
        xtransform # {matrix{{65536, 0, 14871440}, {0, 3, 0}, {988, 0, 9}}}
#25 _cairo_xlib_surface_set_attributes (surface=0x10cc800, attributes=0x7fffffff60d0, xc=<value optimised out>, yc=<value optimised out>, display=<value optimised out>)
    at /build/buildd/cairo-1.10.2/src/cairo-xlib-surface.c:1772
        status = 3723602985
        pa # {repeat15115984, alpha_map # 15008080, alpha_x_origin4194303, alpha_y_origin # 0, clip_x_origin88084003, clip_y_origin # 0, clip_mask985162418446720, 
          graphics_exposures # 88083993, subwindow_mode50332636, poly_edge # 0, poly_mode0, dither # 18362925961851170304, component_alpha-36720}
        mask = 0
#26 0x00007ffff6462797 in _cairo_xlib_surface_composite_trapezoids (op=CAIRO_OPERATOR_OVER, pattern=0x7fffffff7090, abstract_dst=<value optimised out>, antialias=<value optimised out>, 
    src_x=988, src_y=3, dst_x=988, dst_y=3, width=4294936848, height=4131441193, traps=0x218000003f400, num_traps=259072, clip_region=0x218000003e500)
    at /build/buildd/cairo-1.10.2/src/cairo-xlib-surface.c:3019
        attributes # {matrix{xx # 1, yx0, xy # 0, yy1, x0 # 0, y00}, extend # CAIRO_EXTEND_REPEAT, filterCAIRO_FILTER_NEAREST, has_component_alpha # 0, x_offset0, 
          y_offset # 0, extra0x7ffff66b8c30}
        dst = <value optimised out>
        src = 0x10cc800
        display = 0x1059680
        status = 9
        operation = <value optimised out>
        render_reference_x = <value optimised out>
        render_reference_y = <value optimised out>
        pict_format = <value optimised out>
        xtraps_stack # {{top215552, bottom # 271616, left{p1 # {x64749568, y # 215552}, p2{x # 64749568, y294912}}, right # {p1{x # 64749568, y215552}, p2 = {
                x # 64805632, y271616}}}, {top # 271616, bottom374272, left # {p1{x # 64749568, y294912}, p2 # {x64749568, y # 557056}}, right{p1 # {x64805632, 
                y # 271616}, p2{x # 64936704, y402688}}}, {top # 374272, bottom402688, left # {p1{x # 64759040, y318208}, p2 # {x64890112, y # 449280}}, right{p1 = {
                x # 64805632, y271616}, p2 # {x64936704, y # 402688}}}, {top402688, bottom # 425984, left{p1 # {x64759040, y # 318208}, p2{x # 64890112, y449280}}, 
            right # {p1{x # 64936704, y402688}, p2 # {x64960000, y # 425984}}}, {top425984, bottom # 449280, left{p1 # {x64890112, y # 402688}, p2{x = 64759040, 
                y # 533760}}, right{p1 # {x64960000, y # 425984}, p2{x # 64936704, y449280}}}, {top # 449280, bottom477696, left # {p1{x # 64890112, y402688}, p2 = {
                x # 64759040, y533760}}, right # {p1{x # 64936704, y449280}, p2 # {x64805632, y # 580352}}}, {top374272, bottom # 477696, left{p1 # {x64749568, 
                y # 294912}, p2{x # 64749568, y557056}}, right # {p1{x # 64815104, y294912}, p2 # {x64815104, y # 557056}}}, {top477696, bottom # 580352, left{p1 = {
                x # 64749568, y557056}, p2 # {x64749568, y # 636416}}, right{p1 # {x64936704, y # 449280}, p2{x # 64805632, y580352}}}, {top # 0, bottom1024, left = {
              p1 # {x-43152, y # 32767}, p2{x # 64749568, y636416}}, right # {p1{x # 0, y0}, p2 # {x-44136, y # 32767}}}, {top128, bottom # 1119354880, left{p1 = {
                x # -34232, y32767}, p2 # {x-163526103, y # 32767}}, right{p1 # {x257024, y # 137216}, p2{x # 257024, y137472}}}, {top # 256512, bottom137216, left = {
              p1 # {x256512, y # 137472}, p2{x # 0, y0}}, right # {p1{x # -34248, y32767}, p2 # {x-34248, y # 32767}}}, {top-163522390, bottom # 32767, left{p1 = {
                x # -32032, y32767}, p2 # {x-200346850, y # 32767}}, right{p1 # {x-42904, y # 32767}, p2{x # 2, y1}}}, {top # -34672, bottom32767, left # {p1{
                x # -163341703, y32767}, p2 # {x-34672, y # 32767}}, right{p1 # {x-32032, y # 32767}, p2{x # 2, y0}}}, {top # 18322840, bottom0, left # {p1{x = 2, 
                y # 0}, p2{x # -42904, y32767}}, right # {p1{x # -42848, y32767}, p2 # {x-34248, y # 32767}}}, {top-32280, bottom # 32767, left{p1 # {x0, y = 1024}, 
              p2 # {x-42904, y # 32767}}, right{p1 # {x0, y # 0}, p2{x # 0, y0}}}, {top # -34248, bottom32767, left # {p1{x # 18322832, y0}, p2 # {x-42848, 
---Type <return> to continue, or q <return> to quit---
                y # 32767}}, right{p1 # {x-40672, y # 32767}, p2{x # -163334274, y32767}}}, {top # 0, bottom0, left # {p1{x # 996, y13}, p2 # {x0, y = 13}}, 
            right # {p1{x # 1012, y19}, p2 # {x-163367776, y # 32767}}}, {top-163367952, bottom # 32767, left{p1 # {x196865, y # 1072693248}, p2{x = 284159488, 
                y # -19515425}}, right{p1 # {x-1717986918, y # 1069128089}, p2{x # -160723960, y32767}}}, {top # 0, bottom0, left # {p1{x # -160724544, y32767}, p2 = {
                x # -38624, y32767}}, right # {p1{x # -160723960, y32767}, p2 # {x17143424, y # 0}}}, {top17634464, bottom # 0, left{p1 # {x-42688, y # 32767}, p2{
                x # 17640160, y0}}, right # {p1{x # 0, y0}, p2 # {x13, y # 0}}}, {top2, bottom # 0, left{p1 # {x0, y # 0}, p2{x # -38880, y32767}}, right = {
              p1 # {x-163296615, y # 32767}, p2{x # 13, y0}}}, {top # 0, bottom0, left # {p1{x # 970, y32767}, p2 # {x13, y # 32767}}, right{p1 # {x18331360, 
                y # 0}, p2{x # 88, y1072693248}}}, {top # 0, bottom0, left # {p1{x # -41440, y32767}, p2 # {x-163341712, y # 32767}}, right{p1 # {x0, y # 0}, p2{
                x # 88, y0}}}, {top # 13, bottom0, left # {p1{x # 970, y13}, p2 # {x18331360, y # 0}}, right{p1 # {x6, y # 0}, p2{x # -41616, y32767}}}, {
            top # 0, bottom0, left # {p1{x # 2, y0}, p2 # {x0, y # 0}}, right{p1 # {x-39200, y # 32767}, p2{x # -256859248, y32767}}}, {top # 14420608, bottom0, 
            left # {p1{x # 13, y111}, p2 # {x-256859264, y # 32767}}, right{p1 # {x11101472, y # 0}, p2{x # 13, y0}}}, {top # -42320, bottom32767, left # {p1{
                x # 10999506, y0}, p2 # {x-256859248, y # 32767}}, right{p1 # {x14420608, y # 0}, p2{x # 64, y-111}}}, {top # -256859256, bottom32767, left # {p1{
                x # 8694656, y0}, p2 # {x-256505688, y # 32767}}, right{p1 # {x-42360, y # 32767}, p2{x # 11151622, y0}}}, {top # -256505688, bottom32767, left = {
              p1 # {x-42320, y # 32767}, p2{x # 11151853, y0}}, right # {p1{x # -256505688, y32767}, p2 # {x-38880, y # 32767}}}, {top3, bottom # 1, left{p1 = {
                x # -256859256, y32767}, p2 # {x11106750, y # 0}}, right{p1 # {x0, y # 1075445760}, p2{x # 17884736, y0}}}, {top # -39376, bottom32767, left # {p1{
                x # 17143424, y0}, p2 # {x487, y # 0}}, right{p1 # {x501, y # 0}, p2{x # 88084003, y0}}}, {top # -163285712, bottom32767, left # {p1{x = -256505688, 
                y # 32767}, p2{x # 501, y5}}, right # {p1{x # 88084033, y0}, p2 # {x88083573, y # 0}}}, {top14, bottom # 0, left{p1 # {x0, y # 3584}, p2{x = 0, 
                y # 1072693248}}, right{p1 # {x0, y # 0}, p2{x # 0, y0}}}, {top # 0, bottom1072693248, left # {p1{x # 0, y0}, p2 # {x0, y # 0}}, right{p1 = {
                x # 0, y3}, p2 # {x0, y # 0}}}, {top0, bottom # 257, left{p1 # {x250457, y # 277}, p2{x # 0, y1072693248}}, right # {p1{x # -163308158, y32767}, 
              p2 # {x0, y # 0}}}, {top0, bottom # 1072693248, left{p1 # {x0, y # 0}, p2{x # 0, y0}}, right # {p1{x # 1, y3}, p2 # {x0, y # 0}}}, {top0, 
            bottom # 250240, left{p1 # {x384, y # 250228}, p2{x # 511, y384}}, right # {p1{x # 511, y1}, p2 # {x250240, y # 256}}}, {top17143424, bottom = 0, 
            left # {p1{x # 0, y1076899840}, p2 # {x0, y # 1076428800}}, right{p1 # {x0, y # 1077116928}, p2{x # 0, y1076428800}}}, {top # 0, bottom0, left # {p1{
                x # 0, y1076076544}, p2 # {x0, y # 1076559872}}, right{p1 # {x-40432, y # 32767}, p2{x # 2, y0}}}, {top # 0, bottom0, left # {p1{x = 17640160, 
                y # 0}, p2{x # -38880, y32767}}, right # {p1{x # -39200, y32767}, p2 # {x-163286566, y # 32767}}}, {top-39200, bottom # 32767, left{p1 # {x2, 
                y # 0}, p2{x # -160723772, y32767}}, right # {p1{x # 5, y0}, p2 # {x6, y # 0}}}, {top-160723920, bottom # 32767, left{p1 # {x1, y # 0}, p2{x = 0, 
                y # 0}}, right{p1 # {x1, y # 7}, p2{x # -41648, y32767}}}, {top # 1, bottom0, left # {p1{x # -160724544, y0}, p2 # {x0, y # 1072693248}}, right{
              p1 # {x-160558788, y # 32767}, p2{x # -163393808, y32767}}}, {top # 0, bottom1072693248, left # {p1{x # 4992, y128}, p2 # {x4992, y # 128}}, right{
              p1 # {x1, y # 1}, p2{x # 4992, y256}}}, {top # 4992, bottom128, left # {p1{x # 4992, y0}, p2 # {x848, y # 0}}, right{p1 # {x0, y = 1072693248}, 
              p2 # {x0, y # 0}}}, {top1, bottom # 13, left{p1 # {x4992, y # 256}, p2{x # 4992, y128}}, right # {p1{x # 4992, y0}, p2 # {x244992, y = 0}}}, {
            top # 0, bottom1072693248, left # {p1{x # 0, y0}, p2 # {x0, y # 32767}}, right{p1 # {x-39124, y # 32767}, p2{x # -40432, y32767}}}, {top = -197123648, 
            bottom # 32767, left{p1 # {x-39744, y # 32767}, p2{x # -160724544, y32767}}, right # {p1{x # -38624, y32767}, p2 # {x2, y # 0}}}, {top17640160, 
            bottom # 0, left{p1 # {x-200345373, y # 32767}, p2{x # -39744, y32767}}, right # {p1{x # -160724544, y32767}, p2 # {x-38624, y # 32767}}}, {top2, 
            bottom # 0, left{p1 # {x-39216, y # 32767}, p2{x # -163283973, y32767}}, right # {p1{x # -39200, y32767}, p2 # {x-160724544, y # 32767}}}, {top-38576, 
            bottom # 32767, left{p1 # {x1, y # 3}, p2{x # -39040, y32767}}, right # {p1{x # 0, y32767}, p2 # {x-38880, y = 32767}}}}
        xtraps = <value optimised out>
        i = <value optimised out>
#27 0x00007ffff6444a99 in _cairo_surface_composite_trapezoids (op=CAIRO_OPERATOR_OVER, pattern=0x7fffffff7090, dst=0x10d2ae0, antialias=CAIRO_ANTIALIAS_DEFAULT, src_x=988, src_y=3, 
    dst_x=988, dst_y=-40264, width=4, height=4294936832, traps=0x7fffffff8ca0, num_traps=0, clip_region=0x7fffffff62b8) at /build/buildd/cairo-1.10.2/src/cairo-surface.c:2309
        status = <value optimised out>
        __PRETTY_FUNCTION__.10657 = "_cairo_surface_composite_trapezoids"
#28 0x00007ffff64475e0 in _composite_traps_draw_func (closure=0x1ffff65e0, op=4294936832, src=<value optimised out>, dst=<value optimised out>, dst_x=-32032, dst_y=<value optimised out>, 
    extents=0x7fffffff6f50, clip_region=0x0) at /build/buildd/cairo-1.10.2/src/cairo-surface-fallback.c:561
        info = 0x1ffff65e0
        status = <value optimised out>
        extents_region = 0x7fffffff82e0
#29 0x00007ffff6446703 in _clip_and_composite (clip=0x0, op=<value optimised out>, src=<value optimised out>, draw_func=0x7ffff6447530 <_composite_traps_draw_func>, 
    draw_closure=0x7fffffff65e0, dst=0x10d2ae0, extents=0x7fffffff6f50) at /build/buildd/cairo-1.10.2/src/cairo-surface-fallback.c:472
        clip_surface = <value optimised out>
        clip_region = 0x1
        status = <value optimised out>
#30 0x00007fff00000004 in ?? ()
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#31 0x00007fffffff6f50 in ?? ()
No symbol table info available.
#32 0x00007ffff641dae1 in _cairo_gstate_stroke (gstate=0x1, path=0x2) at /build/buildd/cairo-1.10.2/src/cairo-gstate.c:1176
        source_pattern # {typeCAIRO_PATTERN_TYPE_SOLID, base # {typeCAIRO_PATTERN_TYPE_SOLID, ref_count # {ref_count0}, status # CAIRO_STATUS_SUCCESS, user_data{size = 2, 
              num_elements # 0, element_size0, elements # 0x10d2ae0, is_snapshot-160724136}, matrix # {xx1, yx # 6.9533460686327584e-310, xy6.9533558061073556e-310, 
              yy # 1.5810100666919889e-322, x06.9533558059891751e-310, y0 # 6.9533558059891751e-310}, filterCAIRO_FILTER_GOOD, extend = CAIRO_EXTEND_NONE, 
            has_component_alpha # -200346850}, solid{base # {typeCAIRO_PATTERN_TYPE_SOLID, ref_count # {ref_count0}, status # CAIRO_STATUS_SUCCESS, user_data{size = 2, 
                num_elements # 0, element_size0, elements # 0x10d2ae0, is_snapshot-160724136}, matrix # {xx1, yx # 6.9533460686327584e-310, xy6.9533558061073556e-310, 
                yy # 1.5810100666919889e-322, x06.9533558059891751e-310, y0 # 6.9533558059891751e-310}, filterCAIRO_FILTER_GOOD, extend = CAIRO_EXTEND_NONE, 
              has_component_alpha # -200346850}, color{red # 4.6174629661667086e-311, green6.953344312902453e-310, blue # 2.1729236899484389e-311, alpha-1, red_short = 38288, 
              green_short # 279, blue_short0, alpha_short # 0}}, surface{base # {typeCAIRO_PATTERN_TYPE_SOLID, ref_count # {ref_count0}, status = CAIRO_STATUS_SUCCESS, 
              user_data # {size2, num_elements # 0, element_size0, elements # 0x10d2ae0, is_snapshot-160724136}, matrix # {xx1, yx = 6.9533460686327584e-310, 
                xy # 6.9533558061073556e-310, yy1.5810100666919889e-322, x0 # 6.9533558059891751e-310, y06.9533558059891751e-310}, filter = CAIRO_FILTER_GOOD, 
              extend # CAIRO_EXTEND_NONE, has_component_alpha-200346850}, surface # 0x8800003dc80}, gradient{base # {base{type # CAIRO_PATTERN_TYPE_SOLID, ref_count{
                  ref_count # 0}, statusCAIRO_STATUS_SUCCESS, user_data # {size2, num_elements # 0, element_size0, elements # 0x10d2ae0, is_snapshot-160724136}, matrix = {
                  xx # 1, yx6.9533460686327584e-310, xy # 6.9533558061073556e-310, yy1.5810100666919889e-322, x0 # 6.9533558059891751e-310, y06.9533558059891751e-310}, 
                filter # CAIRO_FILTER_GOOD, extendCAIRO_EXTEND_NONE, has_component_alpha # -200346850}, n_stops253056, stops_size # 2176, stops0x7ffff221e3c7, stops_embedded = {{
                  offset # 2.1729236899484389e-311, color{red # -1, green9.0526818257206591e-317, blue # 6.9533558058840379e-310, alpha9.0526818257206591e-317, red_short = 26048, 
                    green_short # 65535, blue_short32767, alpha_short # 0}}, {offset6.9533558059899656e-310, color # {red6.9533477380496471e-310, green = 2.1219960429387517e-314, 
                    blue # 1.0609979207293907e-313, alpha6.9531436082559078e-310, red_short # 28572, green_short65535, blue_short # 32767, alpha_short0}}}}, linear # {base{
                base # {typeCAIRO_PATTERN_TYPE_SOLID, ref_count # {ref_count0}, status # CAIRO_STATUS_SUCCESS, user_data{size # 2, num_elements0, element_size = 0, 
                    elements # 0x10d2ae0, is_snapshot-160724136}, matrix # {xx1, yx # 6.9533460686327584e-310, xy6.9533558061073556e-310, yy = 1.5810100666919889e-322, 
                    x0 # 6.9533558059891751e-310, y06.9533558059891751e-310}, filter # CAIRO_FILTER_GOOD, extendCAIRO_EXTEND_NONE, has_component_alpha = -200346850}, 
                n_stops # 253056, stops_size2176, stops # 0x7ffff221e3c7, stops_embedded{{offset # 2.1729236899484389e-311, color{red # -1, green9.0526818257206591e-317, 
                      blue # 6.9533558058840379e-310, alpha9.0526818257206591e-317, red_short # 26048, green_short65535, blue_short # 32767, alpha_short0}}, {
                    offset # 6.9533558059899656e-310, color{red # 6.9533477380496471e-310, green2.1219960429387517e-314, blue = 1.0609979207293907e-313, 
                      alpha # 6.9531436082559078e-310, red_short28572, green_short # 65535, blue_short32767, alpha_short # 0}}}}, p1{x # -38272, y32767}, p2 # {x0, 
                y # 32767}}, radial{base # {base{type # CAIRO_PATTERN_TYPE_SOLID, ref_count{ref_count # 0}, statusCAIRO_STATUS_SUCCESS, user_data # {size2, num_elements = 0, 
                    element_size # 0, elements0x10d2ae0, is_snapshot # -160724136}, matrix{xx # 1, yx6.9533460686327584e-310, xy = 6.9533558061073556e-310, 
                    yy # 1.5810100666919889e-322, x06.9533558059891751e-310, y0 # 6.9533558059891751e-310}, filterCAIRO_FILTER_GOOD, extend = CAIRO_EXTEND_NONE, 
                  has_component_alpha # -200346850}, n_stops253056, stops_size # 2176, stops0x7ffff221e3c7, stops_embedded # {{offset2.1729236899484389e-311, color # {red-1, 
                      green # 9.0526818257206591e-317, blue6.9533558058840379e-310, alpha # 9.0526818257206591e-317, red_short26048, green_short # 65535, blue_short32767, 
                      alpha_short # 0}}, {offset6.9533558059899656e-310, color # {red6.9533477380496471e-310, green # 2.1219960429387517e-314, blue1.0609979207293907e-313, 
                      alpha # 6.9531436082559078e-310, red_short28572, green_short # 65535, blue_short32767, alpha_short # 0}}}}, c1{x # -38272, y32767}, r1 # 0, c2{
                x # 32767, y-2147483648}, r2 = -2147483648}}}
        style # {line_width0, line_cap # 284159488, line_join4275451871, miter_limit # 3.432768107304981e-320, dash0x7fffffff6f40, num_dashes = 4294929712, 
          dash_offset = 6.9533478670075988e-310}
        dash = {8.7153970431429236e-317, 6.9533477405348467e-310}
        clip # {path0x7fffffff7190, all_clipped = 2}
        status = CAIRO_STATUS_NO_MEMORY
#33 0xfed637df00000000 in ?? ()
No symbol table info available.
#34 0x00007fffffff7090 in ?? ()
No symbol table info available.
#35 0x3fb999999999999a in ?? ()
No symbol table info available.
#36 0x00007fff00000000 in ?? ()
No symbol table info available.
#37 0x0000000000000002 in ?? ()
---Type <return> to continue, or q <return> to quit---
No symbol table info available.
#38 0x00000000010d2ae0 in ?? ()
No symbol table info available.
#39 0x00007fffffff70c0 in ?? ()
No symbol table info available.
#40 0x0000000000000000 in ?? ()
No symbol table info available.
(gdb) 
}}}

Improve usability, especially the UI, based on use cases

Original reporter: MikolajKonarski

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.

not enough space in left panel for trace expansion?

Original reporter: kowey

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.

Redesign the UI using the general visual communication principles

Original reporter: MikolajKonarski

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.

TS does not compile under Windows 7

Original reporter: MikolajKonarski

Compiler complains that widgetSetCanFocus is out of scope.
Compiles OK with the occurence of widgetSetCanFocus removed.

Versions: gtk2hs is 0.12.2, TS is 0.2.1 and GTK is 2.24.8.

The problem may be due to conditional compilation in gtk2hs,
which for that particular GTK version may switch off the widgetSetCanFocus. Not verified in the code.

TS crash under Windows 7

Original reporter: MikolajKonarski

TS (with widgetSetCanFocus commented out, see #21) crashes under Windows 7 every time an eventlog is loaded.

Backtrace is:

_cairo_win32_scaled_font_ucs4_to_index:GetGlyphIndicesW: Unknown GDI error>threa
dscope: user error (out of memory)

Versions: Haskell Platform is 2011.4.0.0, gtk2hs is 0.12.2, TS is 0.2.1 and GTK is 2.24.8. Look system-specific and was not reproduced with any other GTK version or on any other system, hence the minor priority.

Gtk2hs was installed without any problems, demos were compiled and launched succesfully.

See the full report by Kirill Kolodyazhniy on parallel-haskell.

include spark sizes etc in ch8 test

Original reporter: kowey

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.

Change the colour of labels drawn over dark green (e.g., thread numbers)

Original reporter: MikolajKonarski

15:33 < JaffaCake> dcoutts_: can we get that dark green changed? it's hard to read the thread numbers
15:35 < dcoutts_> oh, that's an interesting point
15:35 < dcoutts_> we might want to invert the colour for labels drawn over the run colour
15:35 < dcoutts_> when it's dark
15:36 < dcoutts_> mikolaj: we should try drawing thread numbers in white
15:37 < dcoutts_> or keep them black but move them above/below the main run trace
15:37 < dcoutts_> JaffaCake: once we draw thread names rather than numbers (when available) we might
                  want to do it differently anyway
15:38 < dcoutts_> since labels will take more space

Regression: spark pool graph rendered wrongly when scrolling

Original reporter: MikolajKonarski

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.

Recommend Projects

  • React photo React

    A declarative, efficient, and flexible JavaScript library for building user interfaces.

  • Vue.js photo Vue.js

    🖖 Vue.js is a progressive, incrementally-adoptable JavaScript framework for building UI on the web.

  • Typescript photo Typescript

    TypeScript is a superset of JavaScript that compiles to clean JavaScript output.

  • TensorFlow photo TensorFlow

    An Open Source Machine Learning Framework for Everyone

  • Django photo Django

    The Web framework for perfectionists with deadlines.

  • D3 photo D3

    Bring data to life with SVG, Canvas and HTML. 📊📈🎉

Recommend Topics

  • javascript

    JavaScript (JS) is a lightweight interpreted programming language with first-class functions.

  • web

    Some thing interesting about web. New door for the world.

  • server

    A server is a program made to process requests and deliver data to clients.

  • Machine learning

    Machine learning is a way of modeling and interpreting data that allows a piece of software to respond intelligently.

  • Game

    Some thing interesting about game, make everyone happy.

Recommend Org

  • Facebook photo Facebook

    We are working to build community through open source technology. NB: members must have two-factor auth.

  • Microsoft photo Microsoft

    Open source projects and samples from Microsoft.

  • Google photo Google

    Google ❤️ Open Source for everyone.

  • D3 photo D3

    Data-Driven Documents codes.