Mercurial > hg > truffle
diff src/share/vm/c1/c1_Runtime1.cpp @ 6388:6b74f44c5059
added Log.printObject() and Log.printlnObject() for more detailed logging of objects
author | Doug Simon <doug.simon@oracle.com> |
---|---|
date | Fri, 14 Sep 2012 10:49:34 +0200 |
parents | 077fd901d7c7 |
children | 13a08f5bb120 |
line wrap: on
line diff
--- a/src/share/vm/c1/c1_Runtime1.cpp Thu Sep 13 17:45:04 2012 +0200 +++ b/src/share/vm/c1/c1_Runtime1.cpp Fri Sep 14 10:49:34 2012 +0200 @@ -750,9 +750,17 @@ #endif JRT_END -JRT_ENTRY(void, Runtime1::graal_log_object(JavaThread* thread, oop obj, jboolean newline, jboolean string)) +JRT_ENTRY(void, Runtime1::graal_log_object(JavaThread* thread, oop obj, jint flags)) + bool string = flags & LOG_OBJECT_STRING; + bool address = flags & LOG_OBJECT_ADDRESS; + bool newline = flags & LOG_OBJECT_NEWLINE; if (!string) { - tty->print("%p", obj); + if (!address && obj->is_oop_or_null(true)) { + char buf[400]; + tty->print("%s@%p", obj->klass()->klass_part()->name()->as_C_string(buf, 400), obj); + } else { + tty->print("%p", obj); + } } else { assert(obj != NULL && java_lang_String::is_instance(obj), "must be");