Skip to content

Instantly share code, notes, and snippets.

@eitoball
Created December 30, 2012 05:27
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 eitoball/4411144 to your computer and use it in GitHub Desktop.
Save eitoball/4411144 to your computer and use it in GitHub Desktop.
For Ruby "Bug #7629 Segmentation fault" (https://bugs.ruby-lang.org/issues/7629)
$ gdb $HOME/.rbenv/versions/1.9.3-debug/bin/ruby /cores/core.65588
GNU gdb 6.3.50-20050815 (Apple version gdb-1822) (Sun Aug 5 03:00:42 UTC 2012)
Copyright 2004 Free Software Foundation, Inc.
GDB is free software, covered by the GNU General Public License, and you are
welcome to change it and/or distribute copies of it under certain conditions.
Type "show copying" to see the conditions.
There is absolutely no warranty for GDB. Type "show warranty" for details.
This GDB was configured as "x86_64-apple-darwin"...Reading symbols for shared libraries ... done
Reading symbols for shared libraries . done
Reading symbols for shared libraries .................................................................................. done
#0 0x00007fff85d65212 in __pthread_kill ()
(gdb) bt
#0 0x00007fff85d65212 in __pthread_kill ()
#1 0x00007fff8c31daf4 in pthread_kill ()
#2 0x00007fff8c361dce in abort ()
#3 0x000000010a23d6fa in rb_bug (fmt=0x10a41ae27 "Segmentation fault") at error.c:284
#4 0x000000010a344032 in sigsegv (sig=11, info=0x10a722ee0, ctx=0x10a722f48) at signal.c:609
#5 <signal handler called>
#6 0x000000010a3f3950 in rb_vm_make_env_object (th=0x7fe810404000, cfp=0x7fe81691c758) at vm.c:485
#7 0x000000010a3f3d25 in rb_vm_make_proc (th=0x7fe810404000, block=0x7fe81691c780, klass=140634686405440) at vm.c:562
#8 0x000000010a3f3c8e in vm_make_proc_from_block (th=0x7fe810404000, block=0x7fe81691c780) at vm.c:546
#9 0x000000010a3f399b in rb_vm_make_env_object (th=0x7fe810404000, cfp=0x10a6e17f0) at vm.c:488
#10 0x000000010a3f3d25 in rb_vm_make_proc (th=0x7fe810404000, block=0x10a6e1818, klass=140634686405440) at vm.c:562
#11 0x000000010a3f3c8e in vm_make_proc_from_block (th=0x7fe810404000, block=0x10a6e1818) at vm.c:546
#12 0x000000010a3f399b in rb_vm_make_env_object (th=0x7fe810404000, cfp=0x10a6e1798) at vm.c:488
#13 0x000000010a3f3d25 in rb_vm_make_proc (th=0x7fe810404000, block=0x10a6e17c0, klass=140634686405440) at vm.c:562
#14 0x000000010a3f3c8e in vm_make_proc_from_block (th=0x7fe810404000, block=0x10a6e17c0) at vm.c:546
#15 0x000000010a3f399b in rb_vm_make_env_object (th=0x7fe810404000, cfp=0x10a6e1740) at vm.c:488
#16 0x000000010a3f3d25 in rb_vm_make_proc (th=0x7fe810404000, block=0x10a6e1768, klass=140634686405440) at vm.c:562
#17 0x000000010a3d8ee2 in vm_callee_setup_arg_complex (th=0x7fe810404000, iseq=0x7fe812d77d30, orig_argc=2, orig_argv=0x10a5e3990, block=0x7fff55a03d58) at vm_insnhelper.c:221
#18 0x000000010a3e8419 in vm_setup_method (th=0x7fe810404000, cfp=0x10a6e1740, recv=140634702631280, argc=2, blockptr=0x10a6e1768, flag=0, me=0x7fe812ced650) at vm_insnhelper.c:470
#19 0x000000010a3e716e in vm_call_method (th=0x7fe810404000, cfp=0x10a6e1740, num=2, blockptr=0x10a6e1768, flag=0, id=84056, me=0x7fe812ced650, recv=140634702631280) at vm_insnhelper.c:529
#20 0x000000010a3df8a3 in vm_exec_core (th=0x7fe810404000, initial=0) at insns.def:1018
#21 0x000000010a3f5e8b in vm_exec (th=0x7fe810404000) at vm.c:1227
#22 0x000000010a3f41c2 in invoke_block_from_c (th=0x7fe810404000, block=0x7fe816868e70, self=140634702631280, argc=1, argv=0x7fff55a05800, blockptr=0x0, cref=0x0) at vm.c:631
#23 0x000000010a3f43a4 in rb_vm_invoke_proc (th=0x7fe810404000, proc=0x7fe816868e70, self=140634702631280, argc=1, argv=0x7fff55a05800, blockptr=0x0) at vm.c:677
#24 0x000000010a3e8a9a in vm_call_bmethod (th=0x7fe810404000, recv=140634702631280, argc=1, argv=0x7fff55a05800, blockptr=0x0, me=0x7fe8169268f0) at vm_insnhelper.c:433
#25 0x000000010a3e764d in vm_call_method (th=0x7fe810404000, cfp=0x10a6e18a0, num=1, blockptr=0x0, flag=6, id=45944, me=0x7fe8169268f0, recv=140634702631280) at vm_insnhelper.c:566
#26 0x000000010a3df8a3 in vm_exec_core (th=0x7fe810404000, initial=0) at insns.def:1018
#27 0x000000010a3f5e8b in vm_exec (th=0x7fe810404000) at vm.c:1227
#28 0x000000010a3f41c2 in invoke_block_from_c (th=0x7fe810404000, block=0x7fff55a07130, self=140634693368400, argc=1, argv=0x7fff55a07190, blockptr=0x0, cref=0x7fe81780c260) at vm.c:631
#29 0x000000010a3f3e3f in vm_yield_with_cref (th=0x7fe810404000, argc=1, argv=0x7fff55a07190, cref=0x7fe81780c260) at vm.c:654
#30 0x000000010a3f11c9 in yield_under (under=140634693367840, self=140634693368400, values=6) at vm_eval.c:1237
#31 0x000000010a3f1436 in specific_eval (argc=0, argv=0x10a5e3448, klass=140634693367840, self=140634693368400) at vm_eval.c:1267
#32 0x000000010a3f163c in rb_obj_instance_eval (argc=0, argv=0x10a5e3448, self=140634693368400) at vm_eval.c:1333
#33 0x000000010a3e8ea3 in call_cfunc (func=0x10a3f15c0 <rb_obj_instance_eval>, recv=140634693368400, len=-1, argc=0, argv=0x10a5e3448) at vm_insnhelper.c:317
#34 0x000000010a3e88e4 in vm_call_cfunc (th=0x7fe810404000, reg_cfp=0x10a6e23a0, num=0, recv=140634693368400, blockptr=0x7fe817017200, me=0x7fe810421770) at vm_insnhelper.c:404
#35 0x000000010a3e71d1 in vm_call_method (th=0x7fe810404000, cfp=0x10a6e23a0, num=0, blockptr=0x7fe817017200, flag=4, id=2904, me=0x7fe810421770, recv=140634693368400) at vm_insnhelper.c:534
#36 0x000000010a3df8a3 in vm_exec_core (th=0x7fe810404000, initial=0) at insns.def:1018
#37 0x000000010a3f5e8b in vm_exec (th=0x7fe810404000) at vm.c:1227
#38 0x000000010a3f41c2 in invoke_block_from_c (th=0x7fe810404000, block=0x10a6e2580, self=140634693366200, argc=1, argv=0x7fff55a08ea8, blockptr=0x0, cref=0x0) at vm.c:631
#39 0x000000010a3f4290 in vm_yield (th=0x7fe810404000, argc=1, argv=0x7fff55a08ea8) at vm.c:661
#40 0x000000010a3ef51c in rb_yield_0 (argc=1, argv=0x7fff55a08ea8) at vm_eval.c:760
#41 0x000000010a3ef4d8 in rb_yield (val=140634728582000) at vm_eval.c:770
#42 0x000000010a1fc358 in rb_ary_each (array=140634693366200) at array.c:1495
#43 0x000000010a3e8ecb in call_cfunc (func=0x10a1fc290 <rb_ary_each>, recv=140634693366200, len=0, argc=0, argv=0x10a5e33c8) at vm_insnhelper.c:320
#44 0x000000010a3e88e4 in vm_call_cfunc (th=0x7fe810404000, reg_cfp=0x10a6e2558, num=0, recv=140634693366200, blockptr=0x10a6e2580, me=0x7fe810446eb0) at vm_insnhelper.c:404
#45 0x000000010a3e71d1 in vm_call_method (th=0x7fe810404000, cfp=0x10a6e2558, num=0, blockptr=0x10a6e2580, flag=8, id=424, me=0x7fe810446eb0, recv=140634693366200) at vm_insnhelper.c:534
#46 0x000000010a3df8a3 in vm_exec_core (th=0x7fe810404000, initial=0) at insns.def:1018
#47 0x000000010a3f5e8b in vm_exec (th=0x7fe810404000) at vm.c:1227
#48 0x000000010a3f41c2 in invoke_block_from_c (th=0x7fe810404000, block=0x10a6e28f0, self=140634728559440, argc=1, argv=0x7fff55a0ab38, blockptr=0x0, cref=0x0) at vm.c:631
#49 0x000000010a3f4290 in vm_yield (th=0x7fe810404000, argc=1, argv=0x7fff55a0ab38) at vm.c:661
#50 0x000000010a3ef51c in rb_yield_0 (argc=1, argv=0x7fff55a0ab38) at vm_eval.c:760
#51 0x000000010a3ef4d8 in rb_yield (val=140634728577760) at vm_eval.c:770
#52 0x000000010a200624 in rb_ary_collect (ary=140634688449120) at array.c:2238
#53 0x000000010a3e8ecb in call_cfunc (func=0x10a200510 <rb_ary_collect>, recv=140634688449120, len=0, argc=0, argv=0x10a5e3280) at vm_insnhelper.c:320
#54 0x000000010a3e88e4 in vm_call_cfunc (th=0x7fe810404000, reg_cfp=0x10a6e28c8, num=0, recv=140634688449120, blockptr=0x10a6e28f0, me=0x7fe810447aa0) at vm_insnhelper.c:404
#55 0x000000010a3e71d1 in vm_call_method (th=0x7fe810404000, cfp=0x10a6e28c8, num=0, blockptr=0x10a6e28f0, flag=0, id=1568, me=0x7fe810447aa0, recv=140634688449120) at vm_insnhelper.c:534
#56 0x000000010a3df8a3 in vm_exec_core (th=0x7fe810404000, initial=0) at insns.def:1018
#57 0x000000010a3f5e8b in vm_exec (th=0x7fe810404000) at vm.c:1227
#58 0x000000010a3f41c2 in invoke_block_from_c (th=0x7fe810404000, block=0x10a6e2aa8, self=140634730072040, argc=1, argv=0x7fff55a0c7c8, blockptr=0x0, cref=0x0) at vm.c:631
#59 0x000000010a3f4290 in vm_yield (th=0x7fe810404000, argc=1, argv=0x7fff55a0c7c8) at vm.c:661
#60 0x000000010a3ef51c in rb_yield_0 (argc=1, argv=0x7fff55a0c7c8) at vm_eval.c:760
#61 0x000000010a3ef4d8 in rb_yield (val=140634728559440) at vm_eval.c:770
#62 0x000000010a200624 in rb_ary_collect (ary=140634728576280) at array.c:2238
#63 0x000000010a3e8ecb in call_cfunc (func=0x10a200510 <rb_ary_collect>, recv=140634728576280, len=0, argc=0, argv=0x10a5e31e8) at vm_insnhelper.c:320
#64 0x000000010a3e88e4 in vm_call_cfunc (th=0x7fe810404000, reg_cfp=0x10a6e2a80, num=0, recv=140634728576280, blockptr=0x10a6e2aa8, me=0x7fe810447aa0) at vm_insnhelper.c:404
#65 0x000000010a3e71d1 in vm_call_method (th=0x7fe810404000, cfp=0x10a6e2a80, num=0, blockptr=0x10a6e2aa8, flag=0, id=1568, me=0x7fe810447aa0, recv=140634728576280) at vm_insnhelper.c:534
#66 0x000000010a3df8a3 in vm_exec_core (th=0x7fe810404000, initial=0) at insns.def:1018
#67 0x000000010a3f5e8b in vm_exec (th=0x7fe810404000) at vm.c:1227
#68 0x000000010a3f41c2 in invoke_block_from_c (th=0x7fe810404000, block=0x10a6e2c08, self=140634761697520, argc=1, argv=0x7fff55a0e458, blockptr=0x0, cref=0x0) at vm.c:631
#69 0x000000010a3f4290 in vm_yield (th=0x7fe810404000, argc=1, argv=0x7fff55a0e458) at vm.c:661
#70 0x000000010a3ef51c in rb_yield_0 (argc=1, argv=0x7fff55a0e458) at vm_eval.c:760
#71 0x000000010a3ef4d8 in rb_yield (val=140634730072040) at vm_eval.c:770
#72 0x000000010a200624 in rb_ary_collect (ary=140634688358120) at array.c:2238
#73 0x000000010a3e8ecb in call_cfunc (func=0x10a200510 <rb_ary_collect>, recv=140634688358120, len=0, argc=0, argv=0x10a5e3170) at vm_insnhelper.c:320
#74 0x000000010a3e88e4 in vm_call_cfunc (th=0x7fe810404000, reg_cfp=0x10a6e2be0, num=0, recv=140634688358120, blockptr=0x10a6e2c08, me=0x7fe810447aa0) at vm_insnhelper.c:404
#75 0x000000010a3e71d1 in vm_call_method (th=0x7fe810404000, cfp=0x10a6e2be0, num=0, blockptr=0x10a6e2c08, flag=0, id=1568, me=0x7fe810447aa0, recv=140634688358120) at vm_insnhelper.c:534
#76 0x000000010a3df8a3 in vm_exec_core (th=0x7fe810404000, initial=0) at insns.def:1018
#77 0x000000010a3f5e8b in vm_exec (th=0x7fe810404000) at vm.c:1227
#78 0x000000010a3f41c2 in invoke_block_from_c (th=0x7fe810404000, block=0x10a6e2d68, self=140634698876080, argc=1, argv=0x7fff55a100e8, blockptr=0x0, cref=0x0) at vm.c:631
#79 0x000000010a3f4290 in vm_yield (th=0x7fe810404000, argc=1, argv=0x7fff55a100e8) at vm.c:661
#80 0x000000010a3ef51c in rb_yield_0 (argc=1, argv=0x7fff55a100e8) at vm_eval.c:760
#81 0x000000010a3ef4d8 in rb_yield (val=140634761697520) at vm_eval.c:770
#82 0x000000010a200624 in rb_ary_collect (ary=140634698876000) at array.c:2238
#83 0x000000010a3e8ecb in call_cfunc (func=0x10a200510 <rb_ary_collect>, recv=140634698876000, len=0, argc=0, argv=0x10a5e30f8) at vm_insnhelper.c:320
#84 0x000000010a3e88e4 in vm_call_cfunc (th=0x7fe810404000, reg_cfp=0x10a6e2d40, num=0, recv=140634698876000, blockptr=0x10a6e2d68, me=0x7fe810447aa0) at vm_insnhelper.c:404
#85 0x000000010a3e71d1 in vm_call_method (th=0x7fe810404000, cfp=0x10a6e2d40, num=0, blockptr=0x10a6e2d68, flag=0, id=1568, me=0x7fe810447aa0, recv=140634698876000) at vm_insnhelper.c:534
#86 0x000000010a3df8a3 in vm_exec_core (th=0x7fe810404000, initial=0) at insns.def:1018
#87 0x000000010a3f5e8b in vm_exec (th=0x7fe810404000) at vm.c:1227
#88 0x000000010a3f41c2 in invoke_block_from_c (th=0x7fe810404000, block=0x7fe811ca0640, self=140634698798440, argc=0, argv=0x7fe8108c1500, blockptr=0x0, cref=0x0) at vm.c:631
#89 0x000000010a3f43a4 in rb_vm_invoke_proc (th=0x7fe810404000, proc=0x7fe811ca0640, self=140634698798440, argc=0, argv=0x7fe8108c1500, blockptr=0x0) at vm.c:677
#90 0x000000010a24ac61 in rb_proc_call (self=140634686756120, args=140634686756080) at proc.c:584
#91 0x000000010a243890 in rb_call_end_proc (data=140634686756120) at eval_jump.c:13
#92 0x000000010a243bd1 in rb_exec_end_proc () at eval_jump.c:126
#93 0x000000010a243ed5 in ruby_finalize_0 () at eval.c:92
#94 0x000000010a2440e5 in ruby_cleanup (ex=0) at eval.c:133
#95 0x000000010a24459f in ruby_run_node (n=0x7fe8109cdd80) at eval.c:244
#96 0x000000010a1ede12 in main (argc=4, argv=0x7fff55a12408) at main.c:38
(gdb) frame 6
#6 0x000000010a3f3950 in rb_vm_make_env_object (th=0x7fe810404000, cfp=0x7fe81691c758) at vm.c:485
485 blockptr = GC_GUARDED_PTR_REF(lfp[0]);
(gdb) frame
#6 0x000000010a3f3950 in rb_vm_make_env_object (th=0x7fe810404000, cfp=0x7fe81691c758) at vm.c:485
485 blockptr = GC_GUARDED_PTR_REF(lfp[0]);
(gdb) info frame
Stack level 6, frame at 0x7fff55a038f0:
rip = 0x10a3f3950 in rb_vm_make_env_object (vm.c:485); saved rip 0x10a3f3d25
called by frame at 0x7fff55a03950, caller of frame at 0x10a722ab8
source language c.
Arglist at 0x7fff55a038e8, args: th=0x7fe810404000, cfp=0x7fe81691c758
Locals at 0x7fff55a038e8, Previous frame's sp is 0x7fff55a038f0
Saved registers:
rsi at 0x7fff55a038d0, rdi at 0x7fff55a038d8, rbp at 0x7fff55a038e0, rip at 0x7fff55a038e8
(gdb) p *cfp
$1 = {
pc = 0x7fe8143bd040,
sp = 0x7fe816919e40,
bp = 0x7fe816919e40,
iseq = 0x7fe814865160,
flag = 0,
self = 432937446,
lfp = 0x87600e,
dfp = 0x7fe8126a4aa8,
block_iseq = 0x0,
proc = 0,
me = 0x7fe81681de70
}
(gdb) p *lfp
Cannot access memory at address 0x87600e
(gdb) p lfp[0]
Cannot access memory at address 0x87600e
(gdb)
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment