# B = binding; b.eval("xxx")

**URL:** <https://www.ruby-forum.com/t/b-binding-b-eval-xxx/96597>\
**Category:** Development\
**Created:** [June 30, 2006, 1:55am UTC](https://www.ruby-forum.com/t/b-binding-b-eval-xxx/96597 "2006-06-30T01:55:10Z")\
**Posts on this page:** 4\
**Page:** 1

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [June 30, 2006, 1:55am UTC](https://www.ruby-forum.com/t/b-binding-b-eval-xxx/96597/1 "2006-06-30T01:55:10Z")

</div>

e$B0J2\<$N$h$&$K$9$k$HMn$A$^$9!#e(B

% ./ruby -ve ’  
b = binding  
b.eval(“xxx”)’  
ruby 1.9.0 (2006-06-29) [i686-linux]  
zsh: segmentation fault (core dumped) ./ruby -ve ’ b = binding  
b.eval(“xxx”)’  
% gdb ruby core  
GNU gdb 6.4-debian  
Copyright 2005 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/libthread\_db.so.1”.

Core was generated by `./ruby -ve  
b = binding  
b.eval(“xxx”)’.  
Program terminated with signal 11, Segmentation fault.

warning: Can’t read pathname for load map: /.  
Reading symbols from /lib/tls/libdl.so.2…done.  
Loaded symbols for /lib/tls/libdl.so.2  
Reading symbols from /lib/tls/libcrypt.so.1…done.  
Loaded symbols for /lib/tls/libcrypt.so.1  
Reading symbols from /lib/tls/libm.so.6…done.  
Loaded symbols for /lib/tls/libm.so.6  
Reading symbols from /lib/tls/libc.so.6…done.  
Loaded symbols for /lib/tls/libc.so.6  
Reading symbols from /lib/ld-linux.so.2…done.  
Loaded symbols for /lib/ld-linux.so.2  
#0 error\_line (frame=0xbff964e0, node=0x0) at eval.c:1150  
1150 switch (TYPE(frame-\>self)) {  
(gdb) bt  
#0 error\_line (frame=0xbff964e0, node=0x0) at eval.c:1150  
#1 0x0805b78f in backtrace (lev=-1) at eval.c:6093  
#2 0x080634bb in rb\_longjmp (tag=6, mesg=3084694860) at eval.c:4378  
#3 0x08063733 in rb\_exc\_raise (mesg=16) at eval.c:4426  
#4 0x080666f5 in rb\_method\_missing (argc=1, argv=0xbff95fc0, obj=16) at  
eval.c:5448  
#5 0x0805609e in call\_cfunc (func=0x80665f0 \<rb\_method\_missing\>,  
recv=3084761620, len=70521, argc=-1210201136,  
argv=0xbff95fc0) at eval.c:5503  
#6 0x08061a10 in rb\_call0 (klass=,  
recv=3084761620, id=3977, oid=3977, argc=0, argv=0xbff95fc0,  
block=0x0, body=0xb7ddb014, flags=16) at eval.c:5726  
#7 0x08061d43 in rb\_call (klass=3084766500, recv=3084761620, mid=3977,  
argc=1, argv=0xbff95fc0, block=0x0,  
scope=CALLING\_FUNCALL, iter=0) at eval.c:5931  
#8 0x080667f8 in method\_missing (obj=3084761620, id=, argc=-1074175960, argv=0x0, block=0x0,  
call\_status=4) at eval.c:5487  
#9 0x08061d84 in rb\_call (klass=3084761600, recv=3084761620, mid=10769,  
argc=0, argv=0x0, block=0x0, scope=CALLING\_VCALL,  
iter=0) at eval.c:5890  
#10 0x0805e70a in rb\_eval (self=3084761620, n=) at  
eval.c:3315  
#11 0x0806ab36 in eval (self=3084761620, src=3084694980,  
scope=3084695000, file=0x8160631 “-e”, line=2) at eval.c:6267  
#12 0x0806af09 in rb\_f\_eval (argc=2, argv=0xb7ddcbd0, self=3084761620)  
at eval.c:6375  
#13 0x0806b09d in bind\_eval (argc=2, argv=0xb7ddcbd0, bind=3084695000)  
at eval.c:8218  
#14 0x0805609e in call\_cfunc (func=0x806b030 \<bind\_eval\>,  
recv=3084695000, len=70521, argc=-1210201136, argv=0xbff968e0)  
at eval.c:5503  
#15 0x08061a10 in rb\_call0 (klass=,  
recv=3084695000, id=4017, oid=4017, argc=-1074174212,  
argv=0xbff968e0, block=0x0, body=0xb7dcc80c, flags=0) at eval.c:5726  
#16 0x08061d43 in rb\_call (klass=3084699820, recv=3084695000, mid=4017,  
argc=1, argv=0xbff968e0, block=0x0,  
scope=CALLING\_NORMAL, iter=0) at eval.c:5931  
#17 0x0805e586 in rb\_eval (self=3084761620, n=) at  
eval.c:3294  
#18 0x0806ccd0 in ruby\_exec\_internal () at eval.c:1583  
#19 0x0806cd06 in ruby\_exec () at eval.c:1598  
#20 0x0806cd30 in ruby\_run () at eval.c:1614  
#21 0x0805457c in main (argc=-1210201136, argv=0xb7ddcbd0,  
envp=0xbff96d64) at main.c:43  
(gdb)

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [June 30, 2006, 11:13am UTC](https://www.ruby-forum.com/t/b-binding-b-eval-xxx/96597/2 "2006-06-30T11:13:24Z")

</div>

In article [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
Tanaka A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> % ./ruby -ve ’  
> b = binding  
> b.eval(“xxx”)’  
> ruby 1.9.0 (2006-06-29) [i686-linux]  
> zsh: segmentation fault (core dumped) ./ruby -ve ’ b = binding b.eval(“xxx”)’

e$BD4$Y$F$\_$k$H=i4|2=$7$F$$$J$$CM$r;H$C$F$7$^$C$F$$$k$h$&$G!“$He(B  
e$B$j$”$($:!“0J2\<$N$h$&$K$9$k$HMn$A$J$/$J$j$^$9$,!”$3$l$,@5$7$$e(B  
e$B$+$I$&$+H=CG$,$D$-$^$;$s!#e(B

e$B$H$$$&$+!“$3$NCM$,;H$o$l$k$H$OA[Dj$5$l$F$$$J$$2DG=@-$,$”$k$he(B  
e$B$&$K;W$$$^$9!#e(B

e$B$I$&$J$s$G$7$g$&e(B?

# Index: eval.c

RCS file: /src/ruby/eval.c,v  
retrieving revision 1.910  
diff -u -p -r1.910 eval.c  
— eval.c 28 Jun 2006 04:51:27 -0000 1.910  
+++ eval.c 30 Jun 2006 09:03:43 -0000  
@@ -8165,6 +8165,7 @@ rb\_f\_binding(VALUE self)  
VALUE bind;

```
 PUSH_FRAME(Qtrue);

```

- ruby\_frame-\>self = self;  
PUSH\_BLOCK(ruby\_frame-\>block,0,0);  
bind = Data\_Make\_Struct(rb\_cBinding,struct  
BLOCK,blk\_mark,blk\_free,data);  
\*data = \*ruby\_frame-\>block;

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [July 1, 2006, 12:04pm UTC](https://www.ruby-forum.com/t/b-binding-b-eval-xxx/96597/3 "2006-07-01T12:04:39Z")

</div>

In article [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid),  
Tanaka A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid) writes:

> e$B$H$$$&$+!“$3$NCM$,;H$o$l$k$H$OA[Dj$5$l$F$$$J$$2DG=@-$,$”$k$he(B  
> e$B$&$K;W$$$^$9!#e(B
> 
> e$B$I$&$J$s$G$7$g$&e(B?

e$B$=$l$O$=$l$H$7$F$I$&$b:F8=@-$,Dc$/$Fe(B (boron e$B$G$OMn$A$J$/$Fe(B)  
e$B$J$s$J$N$G!"$A$g$C$H9)IW$7$F$\_$^$7$?!#e(B

e$B0J2\<$N$h$&$K$9$k$H!"e(Bboron e$B$G$bMn$A$k$h$&$K$J$j$^$9!#e(B

# Index: eval.c

RCS file: /src/ruby/eval.c,v  
retrieving revision 1.912  
diff -u -p -r1.912 eval.c  
— eval.c 29 Jun 2006 14:05:40 -0000 1.912  
+++ eval.c 1 Jul 2006 09:54:54 -0000  
@@ -8169,6 +8169,7 @@ rb\_f\_binding(VALUE self)  
VALUE bind;

```
 PUSH_FRAME(Qtrue);

```

- ruby\_frame-\>self = 8;  
PUSH\_BLOCK(ruby\_frame-\>block,0,0);  
bind = Data\_Make\_Struct(rb\_cBinding,struct  
BLOCK,blk\_mark,blk\_free,data);  
\*data = \*ruby\_frame-\>block;

PUSH\_FRAME e$B$G$Oe(B ruby\_frame-\>self e$B$D$^$je(B _frame.self  
e$B$O=i4|2=e(B  
e$B$7$F$$$J$$$N$G!“$I$s$JCM$G$”$C$F$b$\*$+$7$/$"$j$^$;$s!#e(B  
e$B$=$3$Ge(B 8 e$B$H$$$&4m81$JCM$@$C$?$H$$$&2DG=@-$rA[Dj$7$F$_$k$H!"e(B  
e$BMn$A$k$H$$$&$o$1$G$9!#e(B

---

<div class="post-metadata">

**Author:** ![Tanaka\_A](https://www.ruby-forum.com/letter_avatar_proxy/v4/letter/t/c67d28/32.png) [@Tanaka\_A](https://www.ruby-forum.com/u/Tanaka_A)\
**Post date:** [July 1, 2006, 5:42pm UTC](https://www.ruby-forum.com/t/b-binding-b-eval-xxx/96597/4 "2006-07-01T17:42:08Z")

</div>

e$B$^$D$b$He(B e$B$f$-$R$m$G$9e(B

In message “Re: [ruby-dev:28913] Re: b = binding; b.eval(“xxx”)”  
on Fri, 30 Jun 2006 18:11:25 +0900, Tanaka A. [removed\_email\_address@domain.invalid](mailto:removed_email_address@domain.invalid)  
writes:

|e$BD4$Y$F$\_$k$H=i4|2=$7$F$$$J$$CM$r;H$C$F$7$^$C$F$$$k$h$&$G!“$He(B  
|e$B$j$”$($:!“0J2\<$N$h$&$K$9$k$HMn$A$J$/$J$j$^$9$,!”$3$l$,@5$7$$e(B  
|e$B$+$I$&$+H=CG$,$D$-$^$;$s!#e(B  
|  
|e$B$H$$$&$+!“$3$NCM$,;H$o$l$k$H$OA[Dj$5$l$F$$$J$$2DG=@-$,$”$k$he(B  
|e$B$&$K;W$$$^$9!#e(B  
|  
|e$B$I$&$J$s$G$7$g$&e(B?

e$B=i4|2=$7$F$J$$CM$KMj$k$N$b$$$+$,$J$b$N$+$H;W$&$N$G!"e(B  
PUSH\_FRAMEe$B$NCf$G=i4|2=$9$k$3$H$K$7$^$9!#e(B
