Charlie Savage wrote:


Dmitri Priimak wrote:
Charlie Savage wrote:
Which ultimately originates in line 1049 in gc.c ( function gc_mark_children ) in ruby-1.8.7-p72
Any ideas?

If you can easily duplicate the issue (sounds like it), then what I would do is run the program under a debugger like gdb or VC++. Put a breakpoint in the relevant mark functions defined in the libxml library. Then step through them and see if you can see what's going on.

Or put a breakpoint in the ruby source code that is raising the exception, and inspect the backtrace. On Windows you won't have any luck with that since the Ruby executable doesn't have symbol information, but maybe your platform is different.
I will give it a try, but I haven't used gdb in ages.

Good luck! I actually prefer a IDE for debugger - so you could always use Eclipse or NetBeans or some such if you'd like....

Another alternative is put in printf statements to standard out, but I think using a debugger is faster and provides a lot more information.

Well, after some looking around it seems to me that the problem appears in ruby_xml_parser.c
when calling
   rb_gc_mark(((rx_string_data *)rxp->data)->str);

Is it possible that ((rx_string_data *)rxp->data)->str is not a proper RVALUE? Or at least without proper ruby type?

--
Dmitri Priimak

_______________________________________________
libxml-devel mailing list
libxml-devel@rubyforge.org
http://rubyforge.org/mailman/listinfo/libxml-devel

Reply via email to