Mercurial > hg > graal-jvmci-8
changeset 23329:bc5552dc384b
Use VM routines to print stack traces from C++ code.
author | Roland Schatz <roland.schatz@oracle.com> |
---|---|
date | Mon, 21 Mar 2016 13:52:18 +0100 |
parents | d6cbb275d6ce |
children | 83b296a07c33 |
files | src/share/vm/jvmci/jvmciCompiler.cpp src/share/vm/jvmci/jvmciRuntime.cpp src/share/vm/jvmci/jvmciRuntime.hpp |
diffstat | 3 files changed, 8 insertions(+), 22 deletions(-) [+] |
line wrap: on
line diff
--- a/src/share/vm/jvmci/jvmciCompiler.cpp Fri Mar 18 12:47:49 2016 -0700 +++ b/src/share/vm/jvmci/jvmciCompiler.cpp Mon Mar 21 13:52:18 2016 +0100 @@ -155,10 +155,10 @@ Handle throwable = PENDING_EXCEPTION; CLEAR_PENDING_EXCEPTION; - JVMCIRuntime::call_printStackTrace(throwable, THREAD); - if (HAS_PENDING_EXCEPTION) { - CLEAR_PENDING_EXCEPTION; - } + java_lang_Throwable::print(throwable, tty); + tty->cr(); + java_lang_Throwable::print_stack_trace(throwable(), tty); + env->set_failure("exception throw", false); } else { oop result_object = (oop) result.get_jobject();
--- a/src/share/vm/jvmci/jvmciRuntime.cpp Fri Mar 18 12:47:49 2016 -0700 +++ b/src/share/vm/jvmci/jvmciRuntime.cpp Mon Mar 21 13:52:18 2016 +0100 @@ -913,23 +913,14 @@ return false; } -void JVMCIRuntime::call_printStackTrace(Handle exception, Thread* thread) { - assert(exception->is_a(SystemDictionary::Throwable_klass()), "Throwable instance expected"); - JavaValue result(T_VOID); - JavaCalls::call_virtual(&result, - exception, - KlassHandle(thread, - SystemDictionary::Throwable_klass()), - vmSymbols::printStackTrace_name(), - vmSymbols::void_method_signature(), - thread); -} - void JVMCIRuntime::abort_on_pending_exception(Handle exception, const char* message, bool dump_core) { Thread* THREAD = Thread::current(); CLEAR_PENDING_EXCEPTION; tty->print_raw_cr(message); - call_printStackTrace(exception, THREAD); + + java_lang_Throwable::print(exception, tty); + tty->cr(); + java_lang_Throwable::print_stack_trace(exception(), tty); // Give other aborting threads to also print their stack traces. // This can be very useful when debugging class initialization
--- a/src/share/vm/jvmci/jvmciRuntime.hpp Fri Mar 18 12:47:49 2016 -0700 +++ b/src/share/vm/jvmci/jvmciRuntime.hpp Mon Mar 21 13:52:18 2016 +0100 @@ -155,11 +155,6 @@ */ static void abort_on_pending_exception(Handle exception, const char* message, bool dump_core = false); - /** - * Calls Throwable.printStackTrace() on a given exception. - */ - static void call_printStackTrace(Handle exception, Thread* thread); - #define CHECK_ABORT THREAD); \ if (HAS_PENDING_EXCEPTION) { \ char buf[256]; \