On 11 févr. 08, at 18:57, Dan Janowski wrote:

> Since it is OS X, did you try to enable any of the malloc debug  
> (man malloc)? There are a whole bunch of env vars that can be set,  
> sometimes they provide useful information.

Yes, actually, I did. I enabled MallocStackLogging and  
MallocStackLoggingNoCompact, then ran the application and waited for  
it to crash, which usually happens after a minute or so.

Just before crashing, stderr usually shows messages like this one:

ruby(9697,0xa000ed88) malloc: ***  Deallocation of a pointer not  
malloced: 0x2113800; This could be a double free(), or free() called  
with the middle of an allocated block; Try setting environment  
variable MallocHelp to see tools to help debug.

Which is not so helpful. Fortunately I sometime was in a position  
where the malloc error messages were displayed but the application  
was not crashed yet, so I was able to use the malloc_history command  
to dig deeper: every single time the error message was caused by the  
following sequence:

0 xmlCleanupCharEncodingHandlers
1 xmlCleanupParser
2 ruby_xml_state_free
3 obj_free
4 ....

Which would mean that 'ruby_xml_state_free' is called when it  
shouldn't be. Or something... :)

-- 
Luc Heinrich


_______________________________________________
libxml-devel mailing list
[email protected]
http://rubyforge.org/mailman/listinfo/libxml-devel

Reply via email to