I recently cut over to using libxml instead of REXML for performance reasons, but my program keeps seg faulting. I ran across a posting on using valgrind with ruby C libraries, and I thought I would try and use it to help me debug the issue. valgrind spits out the message seen at the bottom of this email every 30 seconds or so. (Internally, I am creating an XML document about that frequently for an outside service.)
I am running ruby 1.8.5 (ruby 1.8.5 (2006-08-25) [i686-linux]), on CentOS 5.0. Does anyone have pointers on debugging this issue any further? I am running revision 277 of libxml from SVN. (I just noticed that a new version was released yesterday.) Invalid read of size 4 at 0x42293C4: ruby_xml_attr_free (ruby_xml_attr.c:15) by 0x8070649: garbage_collect (in /usr/bin/ruby) by 0x807098B: ruby_xmalloc (in /usr/bin/ruby) by 0x80787DC: rb_file_open_internal (in /usr/bin/ruby) by 0x8078A38: rb_io_open (in /usr/bin/ruby) by 0x807BCB7: rb_io_s_read (in /usr/bin/ruby) by 0x80553A5: call_cfunc (in /usr/bin/ruby) by 0x805DAB1: rb_call0 (in /usr/bin/ruby) by 0x805E6A0: rb_call (in /usr/bin/ruby) by 0x805C1B5: rb_eval (in /usr/bin/ruby) by 0x805CB98: rb_eval (in /usr/bin/ruby) by 0x805E2AA: rb_call0 (in /usr/bin/ruby) by 0x805E6A0: rb_call (in /usr/bin/ruby) by 0x805C1B5: rb_eval (in /usr/bin/ruby) by 0x805A859: rb_eval (in /usr/bin/ruby) Address 0x59FB87C is 20 bytes inside a block of size 48 free'd at 0x4004FDA: free (vg_replace_malloc.c:233) by 0xBCAAE7: xmlFreeProp (in /usr/lib/libxml2.so.2.6.26) by 0xBCAD2A: xmlFreePropList (in /usr/lib/libxml2.so.2.6.26) by 0xBCA929: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26) by 0xBCA905: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26) by 0xBCA905: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26) by 0xBCA72A: xmlFreeDoc (in /usr/lib/libxml2.so.2.6.26) by 0x422D15D: ruby_xml_document_free (ruby_xml_document.c:412) by 0x8070649: garbage_collect (in /usr/bin/ruby) by 0x807098B: ruby_xmalloc (in /usr/bin/ruby) by 0x80787DC: rb_file_open_internal (in /usr/bin/ruby) by 0x8078A38: rb_io_open (in /usr/bin/ruby) by 0x807BCB7: rb_io_s_read (in /usr/bin/ruby) by 0x80553A5: call_cfunc (in /usr/bin/ruby) by 0x805DAB1: rb_call0 (in /usr/bin/ruby) Invalid write of size 4 at 0x42293C7: ruby_xml_attr_free (ruby_xml_attr.c:14) by 0x8070649: garbage_collect (in /usr/bin/ruby) by 0x807098B: ruby_xmalloc (in /usr/bin/ruby) by 0x80787DC: rb_file_open_internal (in /usr/bin/ruby) by 0x8078A38: rb_io_open (in /usr/bin/ruby) by 0x807BCB7: rb_io_s_read (in /usr/bin/ruby) by 0x80553A5: call_cfunc (in /usr/bin/ruby) by 0x805DAB1: rb_call0 (in /usr/bin/ruby) by 0x805E6A0: rb_call (in /usr/bin/ruby) by 0x805C1B5: rb_eval (in /usr/bin/ruby) by 0x805CB98: rb_eval (in /usr/bin/ruby) by 0x805E2AA: rb_call0 (in /usr/bin/ruby) by 0x805E6A0: rb_call (in /usr/bin/ruby) by 0x805C1B5: rb_eval (in /usr/bin/ruby) by 0x805A859: rb_eval (in /usr/bin/ruby) Address 0x59FB868 is 0 bytes inside a block of size 48 free'd at 0x4004FDA: free (vg_replace_malloc.c:233) by 0xBCAAE7: xmlFreeProp (in /usr/lib/libxml2.so.2.6.26) by 0xBCAD2A: xmlFreePropList (in /usr/lib/libxml2.so.2.6.26) by 0xBCA929: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26) by 0xBCA905: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26) by 0xBCA905: xmlFreeNodeList (in /usr/lib/libxml2.so.2.6.26) by 0xBCA72A: xmlFreeDoc (in /usr/lib/libxml2.so.2.6.26) by 0x422D15D: ruby_xml_document_free (ruby_xml_document.c:412) by 0x8070649: garbage_collect (in /usr/bin/ruby) by 0x807098B: ruby_xmalloc (in /usr/bin/ruby) by 0x80787DC: rb_file_open_internal (in /usr/bin/ruby) by 0x8078A38: rb_io_open (in /usr/bin/ruby) by 0x807BCB7: rb_io_s_read (in /usr/bin/ruby) by 0x80553A5: call_cfunc (in /usr/bin/ruby) Regards, Christopher _______________________________________________ libxml-devel mailing list libxml-devel@rubyforge.org http://rubyforge.org/mailman/listinfo/libxml-devel