Yukihiro said:
Hi,
In message "rb_gc_mark(): unknown data type...non object"
|I figure I'm getting this because I've got a VALUE that's not a Ruby
|object. Has anyone figured out a good way to track down such a bug?
I use gdb. If you're not using your own extension, show us the
backtrace (output from gdb "where" command). We may be able to help
you.
matz.
Thanks; it's my Ruby9i extension. I've wasted two days on this and
haven't found anything definitive. Even when I would explicitly start
the gc, sometimes I would get the error and sometimes not. I began to
suspect that it wasn't a bad VALUE but rather a buffer overrun elsewhere
that was corrupting a VALUE.
In the meantime, I was reading some previous posts about rb_obj_alloc
"only working for T_OBJECT classes" in 1.6.x. Just what exactly are
T_OBJECT classes? Non-builtin classes? I wasn't sure just what was meant
by that, and I do use rb_obj_alloc in a few cases, so out of curiosity I
built my extension on 1.8, and now I don't get the gc "unknown data
type" error. At least not yet. Maybe just a coincidence. We'll see.