Skip to content

Instantly share code, notes, and snippets.

@mbj
Last active August 29, 2015 14:07
Show Gist options
  • Save mbj/3345407d631807e6e072 to your computer and use it in GitHub Desktop.
Save mbj/3345407d631807e6e072 to your computer and use it in GitHub Desktop.
segfault.rb - Intentionally crash ruby
require 'ffi'
module Segfault
extend FFI::Library
ffi_lib 'ruby'
attach_function :rb_bug, [:string, :varargs], :void
end # Segfault
Segfault.rb_bug('%s', :string, 'test bug')
[BUG] test bug
ruby 2.1.3p242 (2014-09-19 revision 47630) [x86_64-linux]
-- C level backtrace information -------------------------------------------
/usr/lib/libruby.so(+0x1880f7) [0x7fc7c0de20f7]
/usr/lib/libruby.so(+0x1885fd) [0x7fc7c0de25fd]
/usr/lib/libruby.so(+0x6d763) [0x7fc7c0cc7763]
/usr/lib/libruby.so(rb_bug+0xb3) [0x7fc7c0cc7dd3]
/usr/lib/libffi.so.6(ffi_call_unix64+0x4c) [0x7fc7c10d9df0] Buffer.c:271
/usr/lib/libffi.so.6(ffi_call+0x2e1) [0x7fc7c10d9861] Struct.c:569
/home/mbj/.gem/ruby/2.1.3/extensions/x86_64-linux/2.1.0-static/ffi-1.9.6/ffi_c.so(rbffi_CallFunction+0xfa) [0x7fc7c12f570a] Call.c:378
/home/mbj/.gem/ruby/2.1.3/extensions/x86_64-linux/2.1.0-static/ffi-1.9.6/ffi_c.so(+0x19926) [0x7fc7c12f5926] MethodHandle.c:232
ruby(+0x16b41c) [0x7fc7c508a41c]
ruby(+0x1786ed) [0x7fc7c50976ed]
ruby(+0x16f363) [0x7fc7c508e363]
ruby(+0x173978) [0x7fc7c5092978]
ruby(rb_iseq_eval_main+0x206) [0x7fc7c509e3c6]
ruby(+0x22fef) [0x7fc7c4f41fef]
ruby(ruby_run_node+0x2f) [0x7fc7c4f4594f]
ruby(+0x22bcb) [0x7fc7c4f41bcb]
/usr/lib/libc.so.6(__libc_start_main+0xf0) [0x7fc7c3da4040]
ruby(+0x22bf9) [0x7fc7c4f41bf9]
-- Other runtime information -----------------------------------------------
* Process memory map:
7fc7c0a44000-7fc7c0a5a000 r-xp 00000000 fe:00 5541564 /usr/lib/libgcc_s.so.1
7fc7c0a5a000-7fc7c0c59000 ---p 00016000 fe:00 5541564 /usr/lib/libgcc_s.so.1
7fc7c0c59000-7fc7c0c5a000 rw-p 00015000 fe:00 5541564 /usr/lib/libgcc_s.so.1
7fc7c0c5a000-7fc7c0ea7000 r-xp 00000000 fe:00 5532871 /usr/lib/libruby.so.2.1.0
7fc7c0ea7000-7fc7c10a6000 ---p 0024d000 fe:00 5532871 /usr/lib/libruby.so.2.1.0
7fc7c10a6000-7fc7c10af000 rw-p 0024c000 fe:00 5532871 /usr/lib/libruby.so.2.1.0
7fc7c10af000-7fc7c10d4000 rw-p 00000000 00:00 0
7fc7c10d4000-7fc7c10db000 r-xp 00000000 fe:00 5512777 /usr/lib/libffi.so.6.0.2
7fc7c10db000-7fc7c12da000 ---p 00007000 fe:00 5512777 /usr/lib/libffi.so.6.0.2
7fc7c12da000-7fc7c12db000 r--p 00006000 fe:00 5512777 /usr/lib/libffi.so.6.0.2
7fc7c12db000-7fc7c12dc000 rw-p 00007000 fe:00 5512777 /usr/lib/libffi.so.6.0.2
7fc7c12dc000-7fc7c12fe000 r-xp 00000000 fe:00 6062044 /home/mbj/.gem/ruby/2.1.3/extensions/x86_64-linux/2.1.0-static/ffi-1.9.6/ffi_c.so
7fc7c12fe000-7fc7c14fd000 ---p 00022000 fe:00 6062044 /home/mbj/.gem/ruby/2.1.3/extensions/x86_64-linux/2.1.0-static/ffi-1.9.6/ffi_c.so
7fc7c14fd000-7fc7c14ff000 rw-p 00021000 fe:00 6062044 /home/mbj/.gem/ruby/2.1.3/extensions/x86_64-linux/2.1.0-static/ffi-1.9.6/ffi_c.so
7fc7c14ff000-7fc7c1505000 r-xp 00000000 fe:00 5844129 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/strscan.so
7fc7c1505000-7fc7c1705000 ---p 00006000 fe:00 5844129 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/strscan.so
7fc7c1705000-7fc7c1706000 rw-p 00006000 fe:00 5844129 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/strscan.so
7fc7c1706000-7fc7c1757000 r-xp 00000000 fe:00 5844098 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/openssl.so
7fc7c1757000-7fc7c1956000 ---p 00051000 fe:00 5844098 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/openssl.so
7fc7c1956000-7fc7c1959000 rw-p 00050000 fe:00 5844098 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/openssl.so
7fc7c1959000-7fc7c195a000 rw-p 00000000 00:00 0
7fc7c195a000-7fc7c195b000 r-xp 00000000 fe:00 5844118 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/fcntl.so
7fc7c195b000-7fc7c1b5a000 ---p 00001000 fe:00 5844118 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/fcntl.so
7fc7c1b5a000-7fc7c1b5b000 rw-p 00000000 fe:00 5844118 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/fcntl.so
7fc7c1b5b000-7fc7c1b8e000 r-xp 00000000 fe:00 5844128 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/date_core.so
7fc7c1b8e000-7fc7c1d8e000 ---p 00033000 fe:00 5844128 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/date_core.so
7fc7c1d8e000-7fc7c1d90000 rw-p 00033000 fe:00 5844128 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/date_core.so
7fc7c1d90000-7fc7c1d91000 rw-p 00000000 00:00 0
7fc7c1d91000-7fc7c1d99000 r-xp 00000000 fe:00 5844124 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/stringio.so
7fc7c1d99000-7fc7c1f98000 ---p 00008000 fe:00 5844124 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/stringio.so
7fc7c1f98000-7fc7c1f99000 rw-p 00007000 fe:00 5844124 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/stringio.so
7fc7c1f99000-7fc7c1fa9000 r-xp 00000000 fe:00 5844122 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/zlib.so
7fc7c1fa9000-7fc7c21a8000 ---p 00010000 fe:00 5844122 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/zlib.so
7fc7c21a8000-7fc7c21a9000 rw-p 0000f000 fe:00 5844122 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/zlib.so
7fc7c21a9000-7fc7c21d1000 r-xp 00000000 fe:00 5844119 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/socket.so
7fc7c21d1000-7fc7c23d1000 ---p 00028000 fe:00 5844119 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/socket.so
7fc7c23d1000-7fc7c23d2000 rw-p 00028000 fe:00 5844119 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/socket.so
7fc7c23d2000-7fc7c23d5000 r-xp 00000000 fe:00 5844117 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/digest.so
7fc7c23d5000-7fc7c25d5000 ---p 00003000 fe:00 5844117 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/digest.so
7fc7c25d5000-7fc7c25d6000 rw-p 00003000 fe:00 5844117 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/digest.so
7fc7c25d6000-7fc7c25eb000 r-xp 00000000 fe:00 5511415 /usr/lib/libz.so.1.2.8
7fc7c25eb000-7fc7c27ea000 ---p 00015000 fe:00 5511415 /usr/lib/libz.so.1.2.8
7fc7c27ea000-7fc7c27eb000 r--p 00014000 fe:00 5511415 /usr/lib/libz.so.1.2.8
7fc7c27eb000-7fc7c27ec000 rw-p 00015000 fe:00 5511415 /usr/lib/libz.so.1.2.8
7fc7c27ec000-7fc7c2850000 r-xp 00000000 fe:00 5516888 /usr/lib/libssl.so.1.0.0
7fc7c2850000-7fc7c2a4f000 ---p 00064000 fe:00 5516888 /usr/lib/libssl.so.1.0.0
7fc7c2a4f000-7fc7c2a53000 r--p 00063000 fe:00 5516888 /usr/lib/libssl.so.1.0.0
7fc7c2a53000-7fc7c2a5a000 rw-p 00067000 fe:00 5516888 /usr/lib/libssl.so.1.0.0
7fc7c2a5a000-7fc7c2c40000 r-xp 00000000 fe:00 5516889 /usr/lib/libcrypto.so.1.0.0
7fc7c2c40000-7fc7c2e40000 ---p 001e6000 fe:00 5516889 /usr/lib/libcrypto.so.1.0.0
7fc7c2e40000-7fc7c2e5c000 r--p 001e6000 fe:00 5516889 /usr/lib/libcrypto.so.1.0.0
7fc7c2e5c000-7fc7c2e68000 rw-p 00202000 fe:00 5516889 /usr/lib/libcrypto.so.1.0.0
7fc7c2e68000-7fc7c2e6c000 rw-p 00000000 00:00 0
7fc7c2e6c000-7fc7c2e6d000 r-xp 00000000 fe:00 5844105 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/digest/sha1.so
7fc7c2e6d000-7fc7c306c000 ---p 00001000 fe:00 5844105 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/digest/sha1.so
7fc7c306c000-7fc7c306d000 rw-p 00000000 fe:00 5844105 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/digest/sha1.so
7fc7c306d000-7fc7c3070000 r-xp 00000000 fe:00 5844112 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/etc.so
7fc7c3070000-7fc7c326f000 ---p 00003000 fe:00 5844112 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/etc.so
7fc7c326f000-7fc7c3270000 rw-p 00002000 fe:00 5844112 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/etc.so
7fc7c3270000-7fc7c3274000 r-xp 00000000 fe:00 5844102 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/io/console.so
7fc7c3274000-7fc7c3473000 ---p 00004000 fe:00 5844102 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/io/console.so
7fc7c3473000-7fc7c3474000 rw-p 00003000 fe:00 5844102 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/io/console.so
7fc7c3474000-7fc7c347b000 r-xp 00000000 fe:00 5844127 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/pathname.so
7fc7c347b000-7fc7c367a000 ---p 00007000 fe:00 5844127 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/pathname.so
7fc7c367a000-7fc7c367b000 rw-p 00006000 fe:00 5844127 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/pathname.so
7fc7c367b000-7fc7c367e000 r-xp 00000000 fe:00 5844104 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/thread.so
7fc7c367e000-7fc7c387d000 ---p 00003000 fe:00 5844104 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/thread.so
7fc7c387d000-7fc7c387e000 rw-p 00002000 fe:00 5844104 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/thread.so
7fc7c387e000-7fc7c3880000 r-xp 00000000 fe:00 6494026 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/enc/trans/transdb.so
7fc7c3880000-7fc7c3a80000 ---p 00002000 fe:00 6494026 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/enc/trans/transdb.so
7fc7c3a80000-7fc7c3a81000 rw-p 00002000 fe:00 6494026 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/enc/trans/transdb.so
7fc7c3a81000-7fc7c3a83000 r-xp 00000000 fe:00 6494035 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/enc/encdb.so
7fc7c3a83000-7fc7c3c82000 ---p 00002000 fe:00 6494035 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/enc/encdb.so
7fc7c3c82000-7fc7c3c83000 rw-p 00001000 fe:00 6494035 /home/mbj/.rubies/ruby-2.1.3/lib/ruby/2.1.0/x86_64-linux/enc/encdb.so
7fc7c3c83000-7fc7c3d84000 rw-p 00000000 00:00 0
7fc7c3d84000-7fc7c3f1d000 r-xp 00000000 fe:00 5508457 /usr/lib/libc-2.20.so
7fc7c3f1d000-7fc7c411d000 ---p 00199000 fe:00 5508457 /usr/lib/libc-2.20.so
7fc7c411d000-7fc7c4121000 r--p 00199000 fe:00 5508457 /usr/lib/libc-2.20.so
7fc7c4121000-7fc7c4123000 rw-p 0019d000 fe:00 5508457 /usr/lib/libc-2.20.so
7fc7c4123000-7fc7c4127000 rw-p 00000000 00:00 0
7fc7c4127000-7fc7c422a000 r-xp 00000000 fe:00 5508456 /usr/lib/libm-2.20.so
7fc7c422a000-7fc7c442a000 ---p 00103000 fe:00 5508456 /usr/lib/libm-2.20.so
7fc7c442a000-7fc7c442b000 r--p 00103000 fe:00 5508456 /usr/lib/libm-2.20.so
7fc7c442b000-7fc7c442c000 rw-p 00104000 fe:00 5508456 /usr/lib/libm-2.20.so
7fc7c442c000-7fc7c4434000 r-xp 00000000 fe:00 5508479 /usr/lib/libcrypt-2.20.so
7fc7c4434000-7fc7c4634000 ---p 00008000 fe:00 5508479 /usr/lib/libcrypt-2.20.so
7fc7c4634000-7fc7c4635000 r--p 00008000 fe:00 5508479 /usr/lib/libcrypt-2.20.so
7fc7c4635000-7fc7c4636000 rw-p 00009000 fe:00 5508479 /usr/lib/libcrypt-2.20.so
7fc7c4636000-7fc7c4664000 rw-p 00000000 00:00 0
7fc7c4664000-7fc7c4667000 r-xp 00000000 fe:00 5508393 /usr/lib/libdl-2.20.so
7fc7c4667000-7fc7c4866000 ---p 00003000 fe:00 5508393 /usr/lib/libdl-2.20.so
7fc7c4866000-7fc7c4867000 r--p 00002000 fe:00 5508393 /usr/lib/libdl-2.20.so
7fc7c4867000-7fc7c4868000 rw-p 00003000 fe:00 5508393 /usr/lib/libdl-2.20.so
7fc7c4868000-7fc7c48de000 r-xp 00000000 fe:00 5512077 /usr/lib/libgmp.so.10.2.0
7fc7c48de000-7fc7c4add000 ---p 00076000 fe:00 5512077 /usr/lib/libgmp.so.10.2.0
7fc7c4add000-7fc7c4ade000 r--p 00075000 fe:00 5512077 /usr/lib/libgmp.so.10.2.0
7fc7c4ade000-7fc7c4adf000 rw-p 00076000 fe:00 5512077 /usr/lib/libgmp.so.10.2.0
7fc7c4adf000-7fc7c4af6000 r-xp 00000000 fe:00 5508415 /usr/lib/libpthread-2.20.so
7fc7c4af6000-7fc7c4cf5000 ---p 00017000 fe:00 5508415 /usr/lib/libpthread-2.20.so
7fc7c4cf5000-7fc7c4cf6000 r--p 00016000 fe:00 5508415 /usr/lib/libpthread-2.20.so
7fc7c4cf6000-7fc7c4cf7000 rw-p 00017000 fe:00 5508415 /usr/lib/libpthread-2.20.so
7fc7c4cf7000-7fc7c4cfb000 rw-p 00000000 00:00 0
7fc7c4cfb000-7fc7c4d1d000 r-xp 00000000 fe:00 5508408 /usr/lib/ld-2.20.so
7fc7c4d5c000-7fc7c4ee5000 r--p 00000000 fe:00 5600520 /usr/lib/locale/locale-archive
7fc7c4ee5000-7fc7c4eea000 rw-p 00000000 00:00 0
7fc7c4f16000-7fc7c4f17000 rw-p 00000000 00:00 0
7fc7c4f17000-7fc7c4f18000 r-xp 00000000 00:00 0
7fc7c4f18000-7fc7c4f19000 ---p 00000000 00:00 0
7fc7c4f19000-7fc7c4f1c000 rw-p 00000000 00:00 0 [stack:12443]
7fc7c4f1c000-7fc7c4f1d000 r--p 00021000 fe:00 5508408 /usr/lib/ld-2.20.so
7fc7c4f1d000-7fc7c4f1e000 rw-p 00022000 fe:00 5508408 /usr/lib/ld-2.20.so
7fc7c4f1e000-7fc7c4f1f000 rw-p 00000000 00:00 0
7fc7c4f1f000-7fc7c51e0000 r-xp 00000000 fe:00 5843351 /home/mbj/.rubies/ruby-2.1.3/bin/ruby
7fc7c53e0000-7fc7c53e6000 rw-p 002c1000 fe:00 5843351 /home/mbj/.rubies/ruby-2.1.3/bin/ruby
7fc7c53e6000-7fc7c540b000 rw-p 00000000 00:00 0
7fc7c5ecb000-7fc7c7171000 rw-p 00000000 00:00 0 [heap]
7fff70257000-7fff70278000 rw-p 00000000 00:00 0 [stack]
7fff703bd000-7fff703bf000 r-xp 00000000 00:00 0 [vdso]
7fff703bf000-7fff703c1000 r--p 00000000 00:00 0 [vvar]
ffffffffff600000-ffffffffff601000 r-xp 00000000 00:00 0 [vsyscall]
[NOTE]
You may have encountered a bug in the Ruby interpreter or extension libraries.
Bug reports are welcome.
For details: http://www.ruby-lang.org/bugreport.html
[1] 12438 abort (core dumped) bundle exec ruby segfault.rb
Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment