From: Yui NARUSE Date: 2011-06-26T16:10:08+09:00 Subject: [ruby-core:37427] [Ruby 1.9 - Bug #4029][Assigned] Stack consistency error (sp: 7, bp: 8) using external libs Issue #4029 has been updated by Yui NARUSE. Status changed from Feedback to Assigned Assignee set to Koichi Sasada Do you have any information? ---------------------------------------- Bug #4029: Stack consistency error (sp: 7, bp: 8) using external libs http://redmine.ruby-lang.org/issues/4029 Author: Andrew Senior Status: Assigned Priority: Normal Assignee: Koichi Sasada Category: ext Target version: 1.9.2 ruby -v: ruby 1.9.2p0 (2010-08-18) [armv7l-linux-eabi] =begin cat example_ext.c #include "ruby.h" VALUE cMyClass; static VALUE my_func( VALUE receiver, VALUE args ) { int offset; for (offset = 0; offset < 6; offset ++) { switch (TYPE(RARRAY_PTR(args)[offset])) { case T_STRING: printf("Arg reads %s\n", RSTRING_PTR(RARRAY_PTR(args)[offset])); break ; case T_DATA: printf("Data \n"); break ; case T_SYMBOL: printf("Symbol \n"); break ; case T_ARRAY: printf("Array \n"); break ; case T_HASH: printf("Hash \n"); break ; case T_OBJECT: printf("Object \n"); break ; case T_NIL: printf("Nil \n"); break ; case T_FIXNUM: printf("Fnum \n"); break ; case T_BIGNUM: printf("Bnum \n"); break ; case T_CLASS: printf("Class \n"); break ;/* */ default: rb_p(TYPE(RARRAY_PTR(args)[offset])); printf("index %d\n", offset); } } } static VALUE my_init( VALUE self ) { return self; } VALUE cMyClass; void Init_example_ext(void) { cMyClass = rb_define_class("MyClass", rb_cObject); rb_define_method(cMyClass, "initialize", my_init, 0); rb_define_method(cMyClass, "my_meth", my_func, -2); } cat probe.rb require 'example_ext' x = MyClass.new WT = 0 win = File.new('test/proto.rb') x.my_meth( nil, win, [], "sept", WT, x ) <<<<<<<< OK x.my_meth( nil, win, [], "sept", x, WT ) <<<<<<<< BUT probe.rb:6: [BUG] Stack consistency error (sp: 7, bp: 8) ruby 1.9.2p0 (2010-08-18) [armv7l-linux-eabi] -- control frame ---------- c:0003 p:0113 s:0007 b:0008 l:000244 d:001214 EVAL probe.rb:6 c:0002 p:---- s:0004 b:0004 l:000003 d:000003 FINISH c:0001 p:0000 s:0002 b:0002 l:000244 d:000244 TOP --------------------------- -- Ruby level backtrace information ---------------------------------------- probe.rb:6:in `
' -- C level backtrace information ------------------------------------------- Not had time to test this in x86 systems. Tried with ruby 1.9.2p0 (2010-08-18) and latest stable tarball. =end -- http://redmine.ruby-lang.org