Skip to content

Instantly share code, notes, and snippets.

@shyouhei
Created May 9, 2017 01:39
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 shyouhei/e323b45f3f59188a63cfaf1f466b8e98 to your computer and use it in GitHub Desktop.
Save shyouhei/e323b45f3f59188a63cfaf1f466b8e98 to your computer and use it in GitHub Desktop.
zsh % lldb -- ./miniruby -I/Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/lib /Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/enc/make_encmake.rb enc.mk
(lldb) target create "./miniruby"
Current executable set to './miniruby' (x86_64).
(lldb) settings set -- target.run-args "-I/Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/lib" "/Users/urabe.shyouhei/data/src/ci.ruby-lang.org/ruby/branches/ruby_2_3/enc/make_encmake.rb" "enc.mk"
(lldb) env DYLD_INSERT_LIBRARIES=/usr/lib/libgmalloc.dylib
(lldb) run
Process 41621 launched: './miniruby' (x86_64)
GuardMalloc[miniruby-41621]: Allocations will be placed on 16 byte boundaries.
GuardMalloc[miniruby-41621]: - Some buffer overruns may not be noticed.
GuardMalloc[miniruby-41621]: - Applications using vector instructions (e.g., SSE) should work.
GuardMalloc[miniruby-41621]: version 108
Process 41621 stopped
* thread #1: tid = 0x6be88, 0x00000001000efacf miniruby`ruby_yyparse + 16 at parse.y:8801, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x11208af9c)
frame #0: 0x00000001000efacf miniruby`ruby_yyparse + 16 at parse.y:8801
(lldb) bt
* thread #1: tid = 0x6be88, 0x00000001000efacf miniruby`ruby_yyparse + 16 at parse.y:8801, queue = 'com.apple.main-thread', stop reason = EXC_BAD_ACCESS (code=1, address=0x11208af9c)
* frame #0: 0x00000001000efacf miniruby`ruby_yyparse + 16 at parse.y:8801
frame #1: 0x00000001000efabf miniruby`ruby_yyparse(parser=<unavailable>) + 37903
frame #2: 0x00000001000f6513 miniruby`yycompile0(arg=4597526256) + 227 at parse.y:5542
frame #3: 0x00000001001fa722 miniruby`rb_suppress_tracing(func=(miniruby`yycompile0 at parse.y:5513), arg=4597526256) + 354 at vm_trace.c:407
frame #4: 0x00000001001d1e96 miniruby`rb_iseq_compile_with_option(src=<unavailable>, file=<unavailable>, absolute_path=4438741200, line=3445, base_block=<unavailable>, opt=<unavailable>) + 726 at iseq.c:637
frame #5: 0x00000001001e8e75 miniruby`eval_string_with_cref(self=4500937960, src=4501302600, scope=8, cref_arg=0x000000010c4c6f28, filename=<unavailable>, lineno=<unavailable>) + 677 at vm_eval.c:1339
frame #6: 0x00000001001ef65d miniruby`rb_mod_module_eval + 365 at vm_eval.c:1633
frame #7: 0x00000001001ef591 miniruby`rb_mod_module_eval + 81
frame #8: 0x00000001001ef540 miniruby`rb_mod_module_eval [inlined] specific_eval(self=<unavailable>, klass=<unavailable>, argv=<unavailable>, argc=<unavailable>)
frame #9: 0x00000001001ef540 miniruby`rb_mod_module_eval(argc=<unavailable>, argv=<unavailable>, mod=4500937960) + 80
frame #10: 0x00000001001daf09 miniruby`vm_call_cfunc + 187 at vm_insnhelper.c:1642
frame #11: 0x00000001001dae4e miniruby`vm_call_cfunc(th=0x0000000100cadc50, reg_cfp=0x0000000100dbbd80, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 46
frame #12: 0x00000001001e09df miniruby`vm_exec_core(th=0x0000000100cadc50, initial=<unavailable>) + 1183 at insns.def:994
frame #13: 0x00000001001e6cb9 miniruby`vm_exec(th=0x0000000100cadc50) + 105 at vm.c:1650
frame #14: 0x00000001001e78fd miniruby`invoke_block_from_c_0 + 909 at vm.c:921
frame #15: 0x00000001001e789a miniruby`invoke_block_from_c_0(th=0x0000000100cadc50, block=0x0000000100dbbe20, self=4500937960, argc=<unavailable>, argv=<unavailable>, blockptr=<unavailable>, cref=0x0000000000000000, splattable=1) + 810
frame #16: 0x00000001001ee9ef miniruby`rb_yield [inlined] invoke_block_from_c_splattable(cref=<unavailable>, blockptr=<unavailable>, argv=<unavailable>, argc=<unavailable>, self=<unavailable>, block=<unavailable>, th=<unavailable>) + 95 at vm.c:988
frame #17: 0x00000001001ee9d3 miniruby`rb_yield + 37
frame #18: 0x00000001001ee9ae miniruby`rb_yield [inlined] rb_yield_0(argv=<unavailable>, argc=<unavailable>)
frame #19: 0x00000001001ee9ae miniruby`rb_yield [inlined] rb_yield_1(val=<unavailable>)
frame #20: 0x00000001001ee9ae miniruby`rb_yield(val=<unavailable>) + 30
frame #21: 0x0000000100005d6c miniruby`rb_ary_each(ary=4500937600) + 60 at array.c:1815
frame #22: 0x00000001001daf09 miniruby`vm_call_cfunc + 187 at vm_insnhelper.c:1642
frame #23: 0x00000001001dae4e miniruby`vm_call_cfunc(th=0x0000000100cadc50, reg_cfp=0x0000000100dbbe00, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 46
frame #24: 0x00000001001e8049 miniruby`vm_call_method_each_type(th=0x0000000100cadc50, cfp=0x0000000100dbbe00, calling=0x00007fff5fbfc500, ci=<unavailable>, cc=<unavailable>) + 233 at vm_insnhelper.c:2026
frame #25: 0x00000001001e863b miniruby`vm_call_method + 235 at vm_insnhelper.c:2176
frame #26: 0x00000001001e85f0 miniruby`vm_call_method(th=0x0000000100cadc50, cfp=0x0000000100dbbe00, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 160
frame #27: 0x00000001001e0ab4 miniruby`vm_exec_core(th=0x0000000100cadc50, initial=<unavailable>) + 1396 at insns.def:963
frame #28: 0x00000001001e6cb9 miniruby`vm_exec(th=0x0000000100cadc50) + 105 at vm.c:1650
frame #29: 0x00000001000655ea miniruby`rb_load_internal0(th=0x0000000100cadc50, fname=4521482120, wrap=<unavailable>) + 170 at load.c:619
frame #30: 0x000000010006800f miniruby`rb_require_internal(fname=<unavailable>, safe=0) + 1871 at load.c:998
frame #31: 0x00000001000680c3 miniruby`rb_f_require + 10 at load.c:1043
frame #32: 0x00000001000680b9 miniruby`rb_f_require(obj=<unavailable>, fname=4521482960) + 9
frame #33: 0x00000001001daf09 miniruby`vm_call_cfunc + 187 at vm_insnhelper.c:1642
frame #34: 0x00000001001dae4e miniruby`vm_call_cfunc(th=0x0000000100cadc50, reg_cfp=0x0000000100dbbf00, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 46
frame #35: 0x00000001001e8049 miniruby`vm_call_method_each_type(th=0x0000000100cadc50, cfp=0x0000000100dbbf00, calling=0x00007fff5fbfce10, ci=<unavailable>, cc=<unavailable>) + 233 at vm_insnhelper.c:2026
frame #36: 0x00000001001e863b miniruby`vm_call_method + 235 at vm_insnhelper.c:2176
frame #37: 0x00000001001e85f0 miniruby`vm_call_method(th=0x0000000100cadc50, cfp=0x0000000100dbbf00, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 160
frame #38: 0x00000001001e09df miniruby`vm_exec_core(th=0x0000000100cadc50, initial=<unavailable>) + 1183 at insns.def:994
frame #39: 0x00000001001e6cb9 miniruby`vm_exec(th=0x0000000100cadc50) + 105 at vm.c:1650
frame #40: 0x00000001000655ea miniruby`rb_load_internal0(th=0x0000000100cadc50, fname=4309595520, wrap=<unavailable>) + 170 at load.c:619
frame #41: 0x0000000100065976 miniruby`rb_f_load(argc=<unavailable>, argv=<unavailable>) + 134 at load.c:649
frame #42: 0x00000001001daf09 miniruby`vm_call_cfunc + 187 at vm_insnhelper.c:1642
frame #43: 0x00000001001dae4e miniruby`vm_call_cfunc(th=0x0000000100cadc50, reg_cfp=0x0000000100dbbf80, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 46
frame #44: 0x00000001001e8049 miniruby`vm_call_method_each_type(th=0x0000000100cadc50, cfp=0x0000000100dbbf80, calling=0x00007fff5fbfd5e0, ci=<unavailable>, cc=<unavailable>) + 233 at vm_insnhelper.c:2026
frame #45: 0x00000001001e863b miniruby`vm_call_method + 235 at vm_insnhelper.c:2176
frame #46: 0x00000001001e85f0 miniruby`vm_call_method(th=0x0000000100cadc50, cfp=0x0000000100dbbf80, calling=<unavailable>, ci=<unavailable>, cc=<unavailable>) + 160
frame #47: 0x00000001001e09df miniruby`vm_exec_core(th=0x0000000100cadc50, initial=<unavailable>) + 1183 at insns.def:994
frame #48: 0x00000001001e6cb9 miniruby`vm_exec(th=0x0000000100cadc50) + 105 at vm.c:1650
frame #49: 0x000000010005fe6b miniruby`ruby_exec_internal(n=0x0000000100dfeed0) + 139 at eval.c:245
frame #50: 0x00000001000635bf miniruby`ruby_run_node [inlined] ruby_exec_node(n=<unavailable>) + 47 at eval.c:310
frame #51: 0x00000001000635ab miniruby`ruby_run_node(n=<unavailable>) + 27
frame #52: 0x000000010020fe8e miniruby`main(argc=<unavailable>, argv=<unavailable>) + 78 at main.c:36
frame #53: 0x00007fff972a35ad libdyld.dylib`start + 1
(lldb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment