When using visualvm on 6u24 we see that the JVM crashes.
Stack trace analysis of the hs_err file indicates that the JVM is executing visualvm code. Specifically, it is executing the function save_class_file_bytes() in source file class_file_cache.c.
There is a function called hash() in this file. The function looks like it could be declared as "static" but it isn't. The save_class_file_bytes() function calls hash(). However our JVM has already loaded another native library that also contains a public function called hash().
The linker decides to call the hash() function in the other native library rather than the hash() function in visualvm, and it crashes.
I see a number of bug reports scattered around the web that look similar to what we see:
Java frames: (J=compiled Java code, j=interpreted, Vv=VM code)
Which makes me think that this is quite a common problem.
Could you fix it, perhaps by marking your "hash()" function as static?