Skip to content

Instantly share code, notes, and snippets.

@LLFourn
Last active June 26, 2016 16:54
Show Gist options
  • Star 0 You must be signed in to star a gist
  • Fork 0 You must be signed in to fork a gist
  • Save LLFourn/135680d93ef10b76b0213386b49fa20e to your computer and use it in GitHub Desktop.
Save LLFourn/135680d93ef10b76b0213386b49fa20e to your computer and use it in GitHub Desktop.
rakudo segfault 27/6/16
#== 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