Segmentation fault - bignorm()
From:
ico@... (Ico Doornekamp)
Date:
2006-12-08 15:41:51 UTC
List:
ruby-core #9685
Hello,
(If this is not the right place to ask this question, please redirect me
to the proper list)
I have created a small project in ruby to visualize disk space usage.
This script works fine for me and for a lot of people who are using it,
but a few users reported to me that the program causes a segmentation
fault. I have spent quite some time on this, but I am not able to
reproduce this myself. Fortunately, one of my users generated a stack
backtrace of the breaking code - attached to the end of this message.
The top frame shows this :
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1479578976 (LWP 27229)]
0xa7ea6ce3 in bignorm (x=2815056860) at bignum.c:106
106 while (len-- && !ds[len]) ;
It seems that something goes wrong in bignum library, but I am not sure
if this is caused by a bug/malfunction of my script, or by something
internal to ruby.
Could some of the more enlightened ruby-hackers take a peek at this
trace, and maybe say something about what could be the cause of this ?
The script itself is avaialble at http://zevv.nl/code/philesight/
Thank you for your time,
Ico
----- GDB backtrace follows -------------------------------
GNU gdb 6.4.90-debian
Copyright (C) 2006 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 "i486-linux-gnu"...Using host libthread_db library "/lib/tls/i686/cmov/libthread_db.so.1".
(gdb) r -- philesight --db /tmp/db --index /mnt/strateg
Starting program: /usr/bin/ruby1.8 -- philesight --db /tmp/db --index /mnt/strateg
[Thread debugging using libthread_db enabled]
[New Thread -1479578976 (LWP 27229)]
Program received signal SIGSEGV, Segmentation fault.
[Switching to Thread -1479578976 (LWP 27229)]
0xa7ea6ce3 in bignorm (x=2815056860) at bignum.c:106
106 while (len-- && !ds[len]) ;
(gdb) bt full
#0 0xa7ea6ce3 in bignorm (x=2815056860) at bignum.c:106
len = 1100466652
ds = (unsigned int *) 0x0
#1 0xa7ea930b in rb_big_mul (x=2815057020, y=2815057000) at bignum.c:1267
No locals.
#2 0xa7ec32cb in call_cfunc (func=0xa7ea92df <rb_big_mul>, recv=2815057020, len=1, argc=1, argv=0xaf9dbd20) at eval.c:5655
No locals.
#3 0xa7ec273d in rb_call0 (klass=2815362540, recv=2815057020, id=42, oid=42, argc=1, argv=0xaf9dbd20, body=0xa7cf04fc, flags=0) at eval.c:5805
len = 1
_frame = {self = 2815057020, argc = 1, last_func = 42, orig_func = 42, last_class = 2815362540, prev = 0xaf9dcaa4, tmp = 0x0, node = 0xa7cd7650, iter = 0, flags = 0, uniq = 9974}
_iter = {iter = 0, prev = 0xaf9dc6ec}
b2 = (NODE *) 0xa7f30d99
result = 4
itr = 0
safe = -1
tick = 9859
#4 0xa7ec3e54 in rb_call (klass=2815362540, recv=2815057020, mid=42, argc=1, argv=0xaf9dbd20, scope=0, self=2814849000) at eval.c:6045
body = (NODE *) 0xa7cf04fc
noex = 0
id = 42
ent = (struct cache_entry *) 0xa7f650e8
#5 0xa7ebc323 in rb_eval (self=2814849000, n=0xa7cd7650) at eval.c:3436
recv = 2815057020
argc = 1
argv = (VALUE *) 0xaf9dbd20
contnode = (NODE * volatile) 0x0
node = (NODE * volatile) 0xa7cd7650
state = -1348615820
result = 4
#6 0xa7ebc1b2 in rb_eval (self=2814849000, n=0xa7cd7614) at eval.c:3431
i = 0
n = (NODE *) 0xa7cd763c
_iter = {iter = 0, prev = 0xaf9dca98}
tmp_block = (struct BLOCK *) 0x0
tmp_iter = 0
recv = 9475
argc = 1
argv = (VALUE *) 0xaf9dc310
contnode = (NODE * volatile) 0x0
node = (NODE * volatile) 0xa7cd7628
state = 135114176
result = 4
#7 0xa7ec05bb in rb_yield_0 (val=2815098140, self=2814849000, klass=0, flags=0, avalue=0) at eval.c:4980
_tag = {buf = {{context = {uc_flags = 2946353464, uc_link = 0xa7f32a0a, uc_stack = {ss_sp = 0x0, ss_flags = 135094856, ss_size = 135094856}, uc_mcontext = {gregs = {3, 0, -1477043644, -1348613800,
-1348613424, -1348610076, -1348613352, -1348613920, -1477043644, -1476974060, 0, 0, -1477698996, -1479747536, -1477704456, -1348613752, -1482748351, 4, 34}, fpregs = 0xaf9dca04,
oldmask = 2817923652, cr2 = 5233}, uc_sigmask = {__val = {0, 2946353640, 2817277524, 2815351140, 2815219760, 5233, 5233, 0, 0, 2815349960, 0, 2946353960, 2816627904, 2815062140, 0, 0, 2817268187, 10,
0, 5233, 0, 2815349960, 2817979256, 2817218357, 2817923652, 2946355128, 2817245987, 2815351140, 2815805604, 5233, 0, 0}}, __fpregs_mem = {cw = 4294902655, sw = 4294901792, tag = 4294967295,
ipoff = 2817366732, cssel = 118489203, dataoff = 2946348240, datasel = 4294901883, _st = {{significand = {72, 0, 0, 0}, exponent = 11784}, {significand = {42951, 21752, 42978, 1064}, exponent = 0}, {
significand = {0, 0, 10112, 42958}, exponent = 34}, {significand = {0, 6724, 42998, 333}, exponent = 0}, {significand = {52104, 44957, 13046, 42988}, exponent = 4}, {significand = {0, 51364,
42965, 22776}, exponent = 42978}, {significand = {9, 0, 4144, 0}, exponent = 21752}, {significand = {42978, 32, 65535, 72}, exponent = 0}}, status = 1072}}, status = 0}}, frame = 0xaf9dcaa4,
iter = 0xaf9dca98, tag = 7, retval = 4, scope = 0xa7ccd844, dst = 0, prev = 0xaf9dd62c, blkid = 0}
_iter = {iter = 0, prev = 0xaf9dceac}
_class = 2814867920
_old = (struct RVarmap * volatile) 0x0
node = (NODE *) 0xa7cd7614
result = 4
old_cref = 2814850160
old_wrapper = 0
block = (struct BLOCK * volatile) 0xaf9dd7ac
old_scope = (struct SCOPE * volatile) 0xa7ccd844
old_vmode = 0
frame = {self = 2814849000, argc = 1, last_func = 10505, orig_func = 10505, last_class = 2814867920, prev = 0xaf9dce74, tmp = 0x0, node = 0xa7cd7790, iter = 0, flags = 0, uniq = 6793}
cnode = (NODE *) 0xa7cd7790
lambda = 0
state = 0
#8 0xa7ec0990 in rb_yield (val=2815098140) at eval.c:5062
No locals.
#9 0xa7ea41e8 in rb_ary_select (ary=2815062140) at array.c:1823
result = 2815062760
i = 0
#10 0xa7ec32ac in call_cfunc (func=0xa7ea41a3 <rb_ary_select>, recv=2815062140, len=0, argc=0, argv=0x0) at eval.c:5652
No locals.
#11 0xa7ec273d in rb_call0 (klass=2815354160, recv=2815062140, id=3721, oid=3721, argc=0, argv=0x0, body=0xa7cede14, flags=0) at eval.c:5805
len = 0
_frame = {self = 2815062140, argc = 0, last_func = 3721, orig_func = 3721, last_class = 2815354160, prev = 0xaf9de904, tmp = 0x0, node = 0xa7cd7790, iter = 2, flags = 0, uniq = 9971}
_iter = {iter = 2, prev = 0xaf9dd98c}
b2 = (NODE *) 0xa7f30d99
result = 4
itr = 2
safe = -1
tick = 9859
#12 0xa7ec3e54 in rb_call (klass=2815354160, recv=2815062140, mid=3721, argc=0, argv=0x0, scope=0, self=2814849000) at eval.c:6045
body = (NODE *) 0xa7cede14
noex = 0
id = 3721
ent = (struct cache_entry *) 0xa7f67728
#13 0xa7ebc323 in rb_eval (self=2814849000, n=0xa7cd7790) at eval.c:3436
recv = 2815062140
argc = 0
argv = (VALUE *) 0x0
contnode = (NODE * volatile) 0x0
node = (NODE * volatile) 0xa7cd7790
state = 1
result = 4
#14 0xa7ebb06c in rb_eval (self=2814849000, n=0xa7cd7600) at eval.c:3166
_iter = {iter = 1, prev = 0xaf9de93c}
_block = {var = 0xa7cd7754, body = 0xa7cd7614, self = 2814849000, frame = {self = 2814849000, argc = 1, last_func = 10505, orig_func = 10505, last_class = 2814867920, prev = 0xaf9df7d4, tmp = 0x0,
node = 0xa7cd7600, iter = 0, flags = 0, uniq = 6793}, scope = 0xa7ccd844, klass = 2814867920, cref = 0xa7c73470, iter = 0, vmode = 0, flags = 1, uniq = 114, dyna_vars = 0x0, orig_thread = 135536328,
wrapper = 0, block_obj = 0, outer = 0x0, prev = 0x0}
_tag = {buf = {{context = {uc_flags = 2946356808, uc_link = 0xa7d5e87f, uc_stack = {ss_sp = 0xa7e254c0, ss_flags = 28, ss_size = 2817923652}, uc_mcontext = {gregs = {-1479747496, 0, -1348610440,
-1477605868, -1348610076, -1348605648, -1348609192, -1348610672, -1477043644, -1348610516, 0, 0, -1479747496, -1477043644, -1477726210, -1477240506, 28, -1348610408, -1477591795},
fpregs = 0xaf9dd718, oldmask = 2946356888, cr2 = 4294967295}, uc_sigmask = {__val = {0, 2817923652, 43, 2946361156, 2946356936, 2817726892, 2815375420, 0, 27, 2817463807, 2815220040, 2817923652,
2946356984, 2817729481, 2, 27, 3, 264, 50, 2817923652, 2946357288, 2817274571, 529, 101de724
saved_cref = (NODE *) 0xa7c73470
_frame = {self = 2814849000, argc = 1, last_func = 10505, orig_func = 10505, last_class = 2814867920, prev = 0xaf9df7d4, tmp = 0x0, node = 0xa7cd7d6c, iter = 0, flags = 0, uniq = 6793}
_iter = {iter = 0, prev = 0xaf9df7c8}
b2 = (NODE *) 0xa7cd6bc4
result = 4
itr = 0
safe = -1
tick = 9859
#18 0xa7ec3e54 in rb_call (klass=2814867920, recv=2814849000, mid=10505, argc=1, argv=0xaf9dea70, scope=1, self=2814849000) at eval.c:6045
body = (NODE *) 0xa7c733bc
noex = 0
id = 10505
ent = (struct cache_entry *) 0xa7f6d788
#19 0xa7ebc5ff in rb_eval (self=2814849000, n=0xa7cd7d6c) at eval.c:3451
argc = 1
argv = (VALUE *) 0xaf9dea70
contnode = (NODE * volatile) 0x0
node = (NODE * volatile) 0xa7cd7d6c
state = 24162310
result = 4
#20 0xa7ebd518 in rb_eval (self=2814849000, n=0xa7cd7a88) at eval.c:3627
contnode = (NODE * volatile) 0xa7cd7c90
node = (NODE * volatile) 0xa7cd7da8
state = -1478339392
result = 4
#21 0xa7ec05bb in rb_yield_0 (val=2815220040, self=2814849000, klass=0, flags=0, avalue=0) at eval.c:4980
_tag = {buf = {{context = {uc_flags = 0, uc_link = 0x0, uc_stack = {ss_sp = 0xe91, ss_flags = 135471448, ss_size = 2814848520}, uc_mcontext = {gregs = {-1479708476, 0, 0, 0, -1348601856, -1348597996,
-1348601784, -1348602352, -1477043644, -1476974060, 0, 0, 1, -1348601424, -1477704456, 0, -1478344716, 135467520, 2}, fpregs = 0xaf9df734, oldmask = 2946365508, cr2 = 2815332740}, uc_sigmask = {
__val = {0, 2, 333, 333, 2814866260, 2946367412, 0, 2815258760, 0, 0, 6759, 0, 2815805604, 2815316360, 0, 2946367400, 2815805604, 2815220760, 0, 0, 2816627904, 135504096, 2, 0, 4, 2816628992,
2816628984, 24, 32, 2, 2816627960, 17}}, __fpregs_mem = {cw = 4294902655, sw = 4294901792, tag = 4294967295, ipoff = 2817454018, cssel = 118489203, dataoff = 2814904548, datasel = 4294901883, _st = {
{sign 0, 3248}, exponent = 44958}, {significand = {13996, 42959, 0, 0}, exponent = 0}, {significand = {0, 8924, 42999, 3048}, exponent = 42957}, {
significand = {65535, 65535, 10564, 42951}, exponent = 65535}, {significand = {65535, 0, 0, 18}, exponent = 0}, {significand = {43, 0, 0, 0}, exponent = 13996}, {significand = {42959, 61152,
42998, 22325}, exponent = 42987}}, status = 2817923652}}, status = 0}}, frame = 0xaf9e1264, iter = 0xaf9e129c, tag = 0, retval = 4, scope = 0xa7ccd9e8, dst = 0, prev = 0xaf9e10e4, blkid = 0}
e_info = 4
rescuing = 0
contnode = (NODE * volatile) 0xa7cd7268
node = (NODE * volatile) 0xa7cd7920
state = 0
result = 1
#32 0xa7ec2ec4 in rb_call0 (klass=2814867920, recv=2814849000, id=10505, oid=10505, argc=0, argv=0xaf9e13d4, body=0xa7cd85a0, flags=0) at eval.c:5949
node = (NODE *) 0xa7cd8668
i = 1
nopt = 1
_tag = {buf = {{context = {uc_flags = 0, uc_link = 0x0, uc_stack = {ss_sp = 0xaf9e1284, ss_flags = -1479632696, ss_size = 2}, uc_mcontext = {gregs = {0, 0, 0, 0, -1348591264, 10505, -1348594872,
-1348595616, -1477043644, 0, -1480099376, 0, 0, 0, -1477694457, 0, 0, 0, 0}, fpregs = 0xaf9e11d0, oldmask = 0, cr2 = 0}, uc_sigmask = {__val = {0, 0, 0, 0, 0, 0, 2815233020, 1, 2946370736, 0, 0, 0,
1, 0 <repeats 15 times>, 2946375976, 0, 1611, 2815261780}}, __fpregs_mem = {cw = 4294902655, sw = 4294901792, tag = 4294967295, ipoff = 2817454018, cssel = 118489203, dataoff = 2814904548,
datasel = 4294901883, _st = {{significand = {32148, 42957, 0, 0}, exponent = 0}, {significand = {0, 0, 0, 0}, exponent = 0}, {significand = {0, 0, 0, 0}, exponent = 55864}, {significand = {42956,
32248, 42957, 0}, exponent = 0}, {significand = {0, 0, 0, 0}, exponent = 0}, {significand = {0, 0, 0, 0}, exponent = 0}, {significand = {4680, 44958, 0, 0}, exponent = 6448}, {significand = {
44958, 61979, 42962, 6724}, exponent = 42998}}, status = 2817227759}}, status = 0}}, frame = 0xa, 2, 135229027, -1348591264,
-1348587404, -1348591192, -1348591760, -1477043644, -1476974060, 0, 0, 1, -1348590832, -1477704456, 0, -1478344716, 135439456, 2}, fpregs = 0xaf9e2094, oldmask = 2946376100, cr2 = 2815332740},
uc_sigmask = {__val = {0, 2, 333, 333, 2814866260, 2946378004, 0, 2815258760, 201, 135439456, 136, 2946375772, 2815805604, 2815316360, 0, 2816622580, 2815805604, 135439464, 2946375848, 2815814945,
2816627904, 135439464, 192, 0, 0, 2816628976, 2816627960, 136, 2816627916, 2, 2816627960, 16}}, __fpregs_mem = {cw = 4294902655, sw = 4294901792, tag = 4294967295, ipoff = 2817454018,
cssel = 118489203, dataoff = 2814904548, datasel = 4294901883, _st = {{significand = {42088, 2066, 192, 0}, exponent = 10524}, {significand = {42951, 3, 0, 42088}, exponent = 2066}, {significand = {
21752, 42978, 6256, 2068}, exponent = 2}, {significand = {0, 5233, 0, 24}, exponent = 0}, {significand = {8456, 44958, 7552, 42986}, exponent = 42088}, {significand = {2066, 192, 0, 13892},
exponent = 44958}, {significand = {8456, 44958, 16372, 42978}, exponent = 21696}, {significand = {42978, 1771, 2068, 8472}, exponent = 44958}}, status = 2815813759}}, status = 0}},
frame = 0xaf9e2134, iter = 0xaf9e2128, tag = 7, retval = 4, scope = 0xa7cd065c, dst = 0, prev = 0xaf9e2218, blkid = 0}
_iter = {iter = 0, prev = 0xaf9e271c}
_class = 2814867920
_old = (struct RVarmap * volatile) 0x0
node = (NODE *) 0xa7cd7a88
result = 4
old_cref = 2814850160
old_wrapper = 0
block = (struct BLOCK * volatile) 0xaf9e303c
old_scope = (struct SCOPE * volatile) 0xa7cd065c
old_vmode = 0
frame = {self = 2814849000, argc = 1, last_func = 10505, orig_func = 10505, last_class = 2814867920, prev = 0xaf9e26e4, tmp = 0x0, node = 0xa7cd8460, iter = 0, flags = 0, uniq = 6608}
cnode = (NODE *) 0xa7cd8460
lambda = 0
state = 0
#37 0xa7ec0990 in rb_yield (val=2815231460) at eval.c:5062
No locals.
#38 0xa7eae473 in0, 1, 2818160208, 3, 0, 2946384080, 2818067128, 2817096715, 2812179328, 6, 0, 2946382632, 4294967295,
2814869160, 4294902655, 4294901792, 4294967295, 2817454018, 118489203, 106394441, 2815261780}}, __fpregs_mem = {cw = 4294902655, sw = 4294901792, tag = 4294967295, ipoff = 2817454018,
cssel = 118489203, dataoff = 2814904548, datasel = 4294901883, _st = {{significand = {32148, 42957, 0, 0}, exponent = 55394}, {significand = {42910, 64305, 42897, 19128}, exponent = 43000}, {
significand = {1, 0, 61600, 42897}, exponent = 1708}, {significand = {42957, 32248, 42957, 0}, exponent = 0}, {significand = {21, 0, 48112, 2064}, exponent = 39184}, {significand = {42897, 63856,
42897, 31702}, exponent = 42898}, {significand = {0, 0, 0, 0}, exponent = 0}, {significand = {0, 57720, 2063, 11884}, exponent = 42951}}, status = 2818158580}}, status = 0}}, frame = 0xaf9e3bc4,
iter = 0xaf9e3bfc, tag = 1, retval = 4, scope = 0xa7cd065c, dst = 0, prev = 0xaf9e4908, blkid = 0}
_old = (struct RVarmap * volatile) 0xa7c72b88
_class = 2814867920
_vmode = 0
_old = (struct SCOPE * volatile) 0xa7c72ca0
_scope = (struct SCOPE *) 0xa7cd065c
state = 0
local_vars = (VALUE *) 0xaf9e39e4
saved_cref = (NODE *) 0xa7c73470
_frame = {self = 2814849000, argc = 1, last_func = 10505, orig_func = 10505, last_class = 2814867920, prev = 0xaf9e4a94, tmp = 0x0, node = 0xa7cd7d6c, iter = 0, flags = 0, uniq = 6608}
_iter = {iter = 0, prev = 0xaf9e4a88}
b2 = (NODE *) 0xa7cd6bc4
result = 4
itr = 0
safe = -1
tick = 9859
#48 0xa7ec3e54 in rb_call (klass=2814867920, recv=2814849000, mid=10505, argc=1, argv=0xaf9e3d30, scope=1, self=2814849000) at eval.c:6045
body = (NODE *) 0xa7c733bc
noex = 0
id = 10505
ent = (struct cache_entry *) 0xa7f6d788
#49 0xa7ebc5ff in rb_eval (self=2814849000, n=0xa7cd7d6c) at eval.c:3451
argc = 1
argv = (VALUE *) 0xaf9e3d30
contnode = (NODE * vo}, {significand = {21752, 42978, 16372, 42978}, exponent = 21696}, {significand = {42978, 29926, 2066, 19064}, exponent = 44958}}, status = 2815813759}},
status = 0}}, frame = 0xaf9e4a94, iter = 0xaf9e4a88, tag = 7, retval = 4, scope = 0xa7c72ca0, dst = 0, prev = 0xaf9e4b78, blkid = 0}
_iter = {iter = 0, prev = 0xaf9e507c}
_class = 2814867920
_old = (struct RVarmap * volatile) 0x0
node = (NODE *) 0xa7cd7a88
result = 4
old_cref = 2814850160
old_wrapper = 0
block = (struct BLOCK * volatile) 0xaf9e599c
old_scope = (struct SCOPE * volatile) 0xa7c72ca0
old_vmode = 0
frame = {self = 2814849000, argc = 1, last_func = 10505, orig_func = 10505, last_class = 2814867920, prev = 0xaf9e5044, tmp = 0x0, node = 0xa7cd8460, iter = 0, flags = 0, uniq = 3614}
cnode = (NODE *) 0xa7cd8460
lambda = 0
state = 0
#52 0xa7ec0990 in rb_yield (val=2814848020) at eval.c:5062
No locals.
#53 0xa7eae473 in dir_each (dir=2814848100) at dir.c:437
dirp = (struct dir_data *) 0x8127438
dp = (struct dirent *) 0x81274cc
#54 0xa7ec19fb in rb_ensure (b_proc=0xa7eae3d7 <dir_each>, data1=2814848100, e_proc=0xa7eae61c <dir_close>, data2=2814848100) at eval.c:5445
_tag = {buf = {{context = {uc_flags = 2946386856, uc_link = 0xa7eb585a, uc_stack = {ss_sp = 0x80704d0, ss_flags = 7337, ss_size = 2946386848}, uc_mcontext = {gregs = {-1477163319, 0, 8565, 0,
-1348576812, 7449, -1348580088, -1348580512, -1477043644, -1477779581, -1477043644, 0, -1477730130, -1479634636, -1477699109, -1482761682, -1479651276, -1479634636, -1479634556},
fpregs = 0xaf9e4c64, oldmask = 2817923652, cr2 = 2946387056}, uc_sigmask = {__val = {0, 2946387016, 2817277524, 2815332740, 2815332760, 7337, 7337, 1, 2946387056, 2815332660, 0, 120, 2946387136,
2814848100, 1, 2, 2818160208, 1, 48, 7337, 0, 2815332660, 2817974552, 2817218357, 2817923652, 2946387112, 2817278081, 2815332740, 2815332760, 7337, 1, 2946387056}}, __fpregs_mem = {cw = 4294902655,
_vmode = 1
_old = (struct SCOPE * volatile) 0xa7cf5d44
_scope = (struct SCOPE *) 0xa7c72ca0
state = 0
local_vars = (VALUE *) 0xaf9e6344
saved_cref = (NODE *) 0xa7ce5034
_frame = {self = 2814849000, argc = 1, last_func = 10505, orig_func = 10505, last_class = 2814867920, prev = 0xaf9e6e24, tmp = 0x0, node = 0xa7ce3cd4, iter = 0, flags = 0, uniq = 3614}
_iter = {iter = 0, prev = 0xaf9e6e18}
b2 = (NODE *) 0xa7cd6bc4
result = 4
itr = 0
safe = -1
tick = 9859
#63 0xa7ec3e54 in rb_call (klass=2814867920, recv=2814849000, mid=10505, argc=1, argv=0xaf9e6690, scope=0, self=2815379960) at eval.c:6045
body = (NODE *) 0xa7c733bc
noex = 0
id = 10505
ent = (struct cache_entry *) 0xa7f6d788
#64 0xa7ebc323 in rb_eval (self=2815379960, n=0xa7ce3964) at eval.c:3436
recv = 2814849000
argc = 1
argv = (VALUE *) 0xaf9e6690
contnode = (NODE * volatile) 0x0
node = (NODE * volatile) 0xa7ce3cd4
state = 0
result = 4
#65 0xa7ec05bb in rb_yield_0 (val=2814848620, self=2815379960, klass=0, flags=0, avalue=2) at eval.c:4980
_tag = {buf = {{context = {uc_flags = 2946395320, uc_link = 0xa7f439aa, uc_stack = {ss_sp = 0xef1, ss_flags = 0, ss_size = 2815353100}, uc_mcontext = {gregs = {2, 0, -1477043644, -1348570488,
-1348571568, -1348562380, -1348571496, -1348572064, -1477043644, -1476974060, -1479655696, 0, 0, 0, -1477704456, -1348571240, -1477695683, -1477505169, 9}, fpregs = 0xaf9e6d84, oldmask = 1,
cr2 = 2946396192}, uc_sigmask = {__val = {0, 2946396088, 2817271613, 2817462984, 0, 1, 2946395828, 2815365340, 2, 4294967295, 2817454018, 118489203, 0, 4294901883, 2946395860, 2815365340, 2,
4294967295, 2817454018, 118489203, 2814904548, 4294901883, 2818067556, 4294902655, 4294901792, 4294967295, 2817362958, 115, 2946395624, 4294901883, 125, 2816622580}}, __fpregs_mem = {
cw = 4294902655, sw = 4294901792, tag = 4294967295, ipoff = 2817454018, css4740, prev = 0xaf9e8884, tmp = 0x0, node = 0xa7cda6fc, iter = 2, flags = 0, uniq = 3539}
_iter = {iter = 2, prev = 0xaf9e84ec}
b2 = (NODE *) 0xa7f30d99
result = 4
itr = 2
safe = -1
tick = 9859
#71 0xa7ec3e54 in rb_call (klass=2815384740, recv=2814849240, mid=3937, argc=0, argv=0x0, scope=1, self=2814849240) at eval.c:6045
body = (NODE *) 0xa7cf4138
noex = 2
id = 3937
ent = (struct cache_entry *) 0xa7f69d68
#72 0xa7ebc5ff in rb_eval (self=2814849240, n=0xa7cda6fc) at eval.c:3451
argc = 0
argv = (VALUE *) 0x0
contnode = (NODE * volatile) 0x0
node = (NODE * volatile) 0xa7cda6fc
state = -1348567104
result = 4
#73 0xa7ebb06c in rb_eval (self=2814849240, n=0xa7cda6ac) at eval.c:3166
_iter = {iter = 1, prev = 0xaf9e88bc}
_block = {var = 0x0, body = 0xa7cda724, self = 2814849240, frame = {self = 2814849240, argc = 0, last_func = 3825, orig_func = 3825, last_class = 2815272240, prev = 0xa7f64240, tmp = 0x0,
node = 0xa7cda710, iter = 2, flags = 0, uniq = 3538}, scope = 0xa7c73010, klass = 2815272240, cref = 0xa7cda4e0, iter = 2, vmode = 0, flags = 1, uniq = 52, dyna_vars = 0x0, orig_thread = 2814867920,
wrapper = 0, block_obj = 0, outer = 0xaf9e91fc, prev = 0xaf9e91fc}
_tag = {buf = {{context = {uc_flags = 2817923652, uc_link = 0x0, uc_stack = {ss_sp = 0xa7f9acc0, ss_flags = -1348565880, ss_size = 2817923652}, uc_mcontext = {gregs = {3345, 0, -1348565880, -1477693331,
-1348566204, -1348564816, -1348565320, -1348566800, -1477043644, -1348566644, 0, 0, -1480117156, 4, -1477726210, 9, 1201, 3, -1348566608}, fpregs = 0xaf9e8278, oldmask = 0, cr2 = 0}, uc_sigmask = {
__val = {0, 0, 0, 0, 1, 2946401188, 2814867920, 3, 2946400720, 3345, 2946401368, 2946400656, 2817923652, 0, 2815272240, 0, 0, 0, 2817272839, 0, 2818157760, 3345, 2946401416, 2946400688, 2817923652, 0,
2814867920, 0, 0, 0, 2817272839, 0}}, __fpregs_mem = {cw = 4294902655, sw = 4294901792, tag = 4294967295, i 0, 1, 0, 1, 2818099975, 2946406240, 2818160208, 1, 0, 1, 0, 1, 2946406200, 2946406272}}, __fpregs_mem = {cw = 4294902655, sw = 4294901792, tag = 4294967295, ipoff = 2817454018,
cssel = 69468275, dataoff = 2815319308, datasel = 4294901883, _st = {{significand = {38816, 44958, 46328, 43001}, exponent = 33591}, {significand = {2052, 28206, 2975, 10780}, exponent = 208}, {
significand = {0, 0, 0, 0}, exponent = 0}, {significand = {0, 895, 65535, 32}, exponent = 65535}, {significand = {65535, 65535, 895, 65535}, exponent = 32}, {significand = {65535, 65535, 65535,
61378}, exponent = 42990}, {significand = {42679, 42989, 23528, 42985}, exponent = 19128}, {significand = {43000, 45044, 43001, 19128}, exponent = 43000}}, status = 1}}, status = 0}},
frame = 0xa7f64240, iter = 0xa7f64228, tag = 0, retval = 4, scope = 0xa7cf5d44, dst = 0, prev = 0x0, blkid = 0}
state = 0
#80 0xa7eb76c0 in ruby_exec () at eval.c:1617
tmp = (volatile NODE *) 0xa7eb769e
#81 0xa7eb76f5 in ruby_run () at eval.c:1627
state = -1477740858
ex = 0
#82 0x080485ff in main (argc=7, argv=0xaf9e9874, envp=0xaf9e9894) at main.c:46
No locals.
(gdb) quit
The program is running. Exit anyway? (y or n)
--
:wq
^X^Cy^K^X^C^C^C^C