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
signature.asc
Description: Dies ist ein digital signierter Nachrichtenteil