Hi,

Am Montag, den 17.08.2009, 02:21 +0200 schrieb Joachim Breitner:
> I debugged it some more, adding putStrLn’s in various locations. It
> seems it crashes when parsing the packages files, which lead me to the
> hypothesis that the problem is related to the happy-generated-files.
> These files are generated by upstream with -agc. I re-generated them
> without any special options, and the problem changed a bit: Instead of a
> strange closure type, I now get a segmentation fault, but at the same
> position:

let me add that I generated the files with the latest happy from
hackage, build in my home directory on that machine.

The full backtrace is:

(gdb) bt full
#0  0x4000000003c50931 in evacuate (p=0x600000000067af20) at sm/Evac.c:517
        bd = 0x6000000000700040
        stp = 0x20000000007532f8
        q = 0x60000000007019c0
        info = 0x60000000006781f8
        tag = 0
#1  0x4000000003be1730 in scavenge_srt (srt=0x600000000067af20, srt_bitmap=3)
    at sm/Scav.c:264
        bitmap = 3
        p = 0x600000000067af20
#2  0x4000000003be1980 in scavenge_fun_srt (info=0x60000000006793a8) at 
sm/Scav.c:292
        fun_info = 0x60000000006793a8
#3  0x4000000003be8c90 in scavenge_static () at sm/Scav.c:1566
        p = 0x6000000000679398
        info = 0x60000000006793a8
#4  0x4000000003beafb0 in scavenge_loop () at sm/Scav.c:1917
        work_to_do = rtsFalse
#5  0x4000000003bd6f40 in scavenge_until_all_done () at sm/GC.c:973
        r = 66202720
#6  0x4000000003bd2fb0 in GarbageCollect (force_major_gc=rtsFalse) at 
sm/GC.c:358
        bd = 0x6000000000a66a48
        stp = 0x4000000003c04240
        live = 6917529027651981464
        allocated = 83665
        max_copied = 6917529027651988040
        avg_copied = 4611686018490811240
        slop = 1
        saved_gct = 0x0
        g = 1
        s = 1610612736
        t = 1
        n = 164
#7  0x4000000003bb2f20 in scheduleDoGC (cap=0x6000000000a66a48, 
    task=0x6000000000a84160, force_major=rtsFalse) at Schedule.c:1550
        heap_census = rtsFalse
#8  0x4000000003bb07e0 in schedule (initialCapability=0x6000000000a66a48, 
    task=0x6000000000a84160) at Schedule.c:694
        t = 0x200000000076f000
        cap = 0x6000000000a66a48
        ret = 1
        prev_what_next = 1
        ready_to_gc = rtsTrue
#9  0x4000000003bb4920 in scheduleWaitThread (tso=0x2000000000780000, ret=0x0, 
    cap=0x6000000000a66a48) at Schedule.c:1987
        task = 0x6000000000a84160
#10 0x4000000003ba5270 in rts_evalLazyIO (cap=0x6000000000a66a48, 
    p=0x6000000000008f80, ret=0x0) at RtsAPI.c:517
        tso = 0x2000000000780000
#11 0x4000000003ba26b0 in real_main () at Main.c:111
        cap = 0x6000000000a66a48
        exit_status = 0
´        status = Success
#12 0x4000000003ba29f0 in main (argc=7, argv=0x60000fffffd8b478) at Main.c:156
No locals.

and the offending data value looks like this:

(gdb) print bd
$1 = (bdescr *) 0x6000000000700040
(gdb) print *bd
$2 = {start = 0x22, free = 0x4000000003d104d0, link = 0x0, u = {back = 0x22, 
    bitmap = 0x22, scan = 0x22}, gen_no = 64029920, step = 0x0, blocks = 34, 
  flags = 0, _padding = {65203936, 1073741824}}

Note the step=0, causing the segfault.

Good night,
Joachim

-- 
Joachim "nomeata" Breitner
Debian Developer
  nome...@debian.org | ICQ# 74513189 | GPG-Keyid: 4743206C
  JID: nome...@joachim-breitner.de | http://people.debian.org/~nomeata

Attachment: signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil

Reply via email to