Last active
June 26, 2016 16:54
-
-
Save LLFourn/135680d93ef10b76b0213386b49fa20e to your computer and use it in GitHub Desktop.
rakudo segfault 27/6/16
This file contains bidirectional Unicode text that may be interpreted or compiled differently than what appears below. To review, open the file in an editor that reveals hidden Unicode characters.
Learn more about bidirectional Unicode characters
#== WITH LLDB \o/ | |
(lldb) run | |
Process 41869 launched: '/Users/llfourn/src/rakudo/install/bin/moar' (x86_64) | |
Process 41869 stopped | |
* thread #1: tid = 0x1a7644d, 0x0000000100063cf4 libmoar.dylib`gc_mark(tc=0x0000000100402a80, st=0x0000000100804b40, data=<unavailable>, worklist=0x000000010a0e61f0) + 84 at MVMCallCapture.c:55, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT) | |
frame #0: 0x0000000100063cf4 libmoar.dylib`gc_mark(tc=0x0000000100402a80, st=0x0000000100804b40, data=<unavailable>, worklist=0x000000010a0e61f0) + 84 at MVMCallCapture.c:55 | |
52 MVMuint16 count = ctx->arg_count; | |
53 MVMuint16 i, flag; | |
54 for (i = 0, flag = 0; i < count; i++, flag++) { | |
-> 55 if (flag_map[flag] & MVM_CALLSITE_ARG_NAMED) { | |
56 /* Current position is name, then next is value. */ | |
57 MVM_gc_worklist_add(tc, worklist, &ctx->args[i].s); | |
58 i++; | |
(lldb) bt | |
* thread #1: tid = 0x1a7644d, 0x0000000100063cf4 libmoar.dylib`gc_mark(tc=0x0000000100402a80, st=0x0000000100804b40, data=<unavailable>, worklist=0x000000010a0e61f0) + 84 at MVMCallCapture.c:55, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=EXC_I386_GPFLT) | |
* frame #0: 0x0000000100063cf4 libmoar.dylib`gc_mark(tc=0x0000000100402a80, st=0x0000000100804b40, data=<unavailable>, worklist=0x000000010a0e61f0) + 84 at MVMCallCapture.c:55 | |
frame #1: 0x000000010003f052 libmoar.dylib`MVM_gc_mark_collectable(tc=<unavailable>, worklist=<unavailable>, new_addr=<unavailable>) + 1714 at collect.c:399 | |
frame #2: 0x000000010003e8d3 libmoar.dylib`process_worklist(tc=0x0000000100402a80, worklist=0x000000010a0e61f0, wtp=0x00007fff5fbff4b8, gen='\0') + 899 at collect.c:313 | |
frame #3: 0x000000010003e374 libmoar.dylib`MVM_gc_collect(tc=0x0000000100402a80, what_to_do=<unavailable>, gen=<unavailable>) + 820 at collect.c:129 | |
frame #4: 0x000000010003b753 libmoar.dylib`run_gc(tc=0x0000000100402a80, what_to_do='\0') + 131 at orchestrate.c:304 | |
frame #5: 0x000000010003b518 libmoar.dylib`MVM_gc_enter_from_allocator(tc=0x0000000100402a80) + 984 at orchestrate.c:438 | |
frame #6: 0x000000010003bcf8 libmoar.dylib`MVM_gc_allocate_zeroed [inlined] MVM_gc_allocate_nursery(tc=<unavailable>, size=<unavailable>) + 52 at allocation.c:32 | |
frame #7: 0x000000010003bcc4 libmoar.dylib`MVM_gc_allocate_zeroed [inlined] MVM_gc_allocate(tc=<unavailable>) + 23 at allocation.h:13 | |
frame #8: 0x000000010003bcad libmoar.dylib`MVM_gc_allocate_zeroed(tc=0x0000000100402a80, size=32) + 13 at allocation.c:49 | |
frame #9: 0x000000010003bf94 libmoar.dylib`MVM_gc_allocate_object(tc=0x0000000100402a80, st=<unavailable>) + 84 at allocation.c:86 | |
frame #10: 0x0000000100008eee libmoar.dylib`MVM_args_slurpy_named(tc=0x0000000100402a80, ctx=0x0000000100373078) + 94 at args.c:627 | |
frame #11: 0x000000010000ee40 libmoar.dylib`MVM_interp_run(tc=0x0000000100402a80, initial_invoke=<unavailable>, invoke_data=<unavailable>) + 12864 at interp.c:1050 | |
frame #12: 0x00000001000c8315 libmoar.dylib`MVM_vm_run_file(instance=<unavailable>, filename=<unavailable>) + 181 at moar.c:304 | |
frame #13: 0x000000010000170a moar`main(argc=<unavailable>, argv=0x00007fff5fbff8e8) + 666 at main.c:191 | |
frame #14: 0x00007fff900c05ad libdyld.dylib`start + 1 | |
frame #15: 0x00007fff900c05ad libdyld.dylib`start + 1 | |
(lldb) fr v | |
(MVMThreadContext *) tc = 0x0000000100402a80 | |
(MVMSTable *) st = 0x0000000100804b40 | |
(void *) data = <variable not available> | |
(MVMGCWorklist *) worklist = 0x0000000108d2c5b0 | |
(MVMCallCaptureBody *) body = <no location, value may have been optimized out> | |
(MVMArgProcContext *) ctx = 0x0000000109926010 | |
(MVMuint16) flag = 0 | |
(MVMuint16) i = 0 | |
(MVMuint16) count = <variable not available> | |
(MVMuint8 *) flag_map = 0x0000000000000002 "" | |
(lldb) p ctx->arg_flags | |
(MVMCallsiteEntry *) $4 = 0x0000000000000000 | |
(lldb) p ctx->callsite->arg_flags | |
(MVMCallsiteEntry *) $5 = 0x0000000000000002 "" |
Sign up for free
to join this conversation on GitHub.
Already have an account?
Sign in to comment