Mercurial > hg > truffle
diff src/share/vm/c1/c1_Runtime1.cpp @ 1480:2fe369533fed
Additional debug output.
author | Thomas Wuerthinger <wuerthinger@ssw.jku.at> |
---|---|
date | Sat, 27 Nov 2010 16:43:53 +0100 |
parents | 7641338cfc92 |
children | 2d26b0046e0d |
line wrap: on
line diff
--- a/src/share/vm/c1/c1_Runtime1.cpp Sat Nov 27 14:30:07 2010 +0100 +++ b/src/share/vm/c1/c1_Runtime1.cpp Sat Nov 27 16:43:53 2010 +0100 @@ -637,7 +637,19 @@ EXCEPTION_MARK; oop obj = lock->obj(); - assert(obj->is_oop(), "must be NULL or an object"); + +#ifdef DEBUG + if (!obj->is_oop()) { + ResetNoHandleMark rhm; + nmethod* method = thread->last_frame().cb()->as_nmethod_or_null(); + if (method != NULL) { + tty->print_cr("ERROR in monitorexit in method %s", method->name()); + } + thread->print_stack_on(tty); + assert(false, "invalid lock object pointer dected"); + } +#endif + if (UseFastLocking) { // When using fast locking, the compiled code has already tried the fast case ObjectSynchronizer::slow_exit(obj, lock->lock(), THREAD);