hotspot/src/share/vm/jvmci/jvmciRuntime.cpp
changeset 35216 71c463a17b3b
parent 35071 a0910b1d3e0d
child 35232 76aed99c0ddd
child 35498 392b50de06c6
equal deleted inserted replaced
35215:f9536fc8548c 35216:71c463a17b3b
    29 #include "jvmci/jvmciRuntime.hpp"
    29 #include "jvmci/jvmciRuntime.hpp"
    30 #include "jvmci/jvmciCompilerToVM.hpp"
    30 #include "jvmci/jvmciCompilerToVM.hpp"
    31 #include "jvmci/jvmciCompiler.hpp"
    31 #include "jvmci/jvmciCompiler.hpp"
    32 #include "jvmci/jvmciJavaClasses.hpp"
    32 #include "jvmci/jvmciJavaClasses.hpp"
    33 #include "jvmci/jvmciEnv.hpp"
    33 #include "jvmci/jvmciEnv.hpp"
       
    34 #include "logging/log.hpp"
    34 #include "memory/oopFactory.hpp"
    35 #include "memory/oopFactory.hpp"
    35 #include "oops/oop.inline.hpp"
    36 #include "oops/oop.inline.hpp"
    36 #include "oops/objArrayOop.inline.hpp"
    37 #include "oops/objArrayOop.inline.hpp"
    37 #include "prims/jvm.h"
    38 #include "prims/jvm.h"
    38 #include "runtime/biasedLocking.hpp"
    39 #include "runtime/biasedLocking.hpp"
   292     // New exception handling mechanism can support inlined methods
   293     // New exception handling mechanism can support inlined methods
   293     // with exception handlers since the mappings are from PC to PC
   294     // with exception handlers since the mappings are from PC to PC
   294 
   295 
   295     // debugging support
   296     // debugging support
   296     // tracing
   297     // tracing
   297     if (TraceExceptions) {
   298     if (log_is_enabled(Info, exceptions)) {
   298       ttyLocker ttyl;
       
   299       ResourceMark rm;
   299       ResourceMark rm;
   300       tty->print_cr("Exception <%s> (" INTPTR_FORMAT ") thrown in compiled method <%s> at PC " INTPTR_FORMAT " for thread " INTPTR_FORMAT "",
   300       log_info(exceptions)("Exception <%s> (" INTPTR_FORMAT ") thrown in"
   301                     exception->print_value_string(), p2i((address)exception()), nm->method()->print_value_string(), p2i(pc), p2i(thread));
   301                            " compiled method <%s> at PC " INTPTR_FORMAT
       
   302                            " for thread " INTPTR_FORMAT,
       
   303                            exception->print_value_string(),
       
   304                            p2i((address)exception()),
       
   305                            nm->method()->print_value_string(), p2i(pc),
       
   306                            p2i(thread));
   302     }
   307     }
   303     // for AbortVMOnException flag
   308     // for AbortVMOnException flag
   304     NOT_PRODUCT(Exceptions::debug_check_abort(exception));
   309     NOT_PRODUCT(Exceptions::debug_check_abort(exception));
   305 
   310 
   306     // Clear out the exception oop and pc since looking up an
   311     // Clear out the exception oop and pc since looking up an
   321   }
   326   }
   322 
   327 
   323   // Set flag if return address is a method handle call site.
   328   // Set flag if return address is a method handle call site.
   324   thread->set_is_method_handle_return(nm->is_method_handle_return(pc));
   329   thread->set_is_method_handle_return(nm->is_method_handle_return(pc));
   325 
   330 
   326   if (TraceExceptions) {
   331   if (log_is_enabled(Info, exceptions)) {
   327     ttyLocker ttyl;
       
   328     ResourceMark rm;
   332     ResourceMark rm;
   329     tty->print_cr("Thread " PTR_FORMAT " continuing at PC " PTR_FORMAT " for exception thrown at PC " PTR_FORMAT,
   333     log_info(exceptions)("Thread " PTR_FORMAT " continuing at PC " PTR_FORMAT
   330                   p2i(thread), p2i(continuation), p2i(pc));
   334                          " for exception thrown at PC " PTR_FORMAT,
       
   335                          p2i(thread), p2i(continuation), p2i(pc));
   331   }
   336   }
   332 
   337 
   333   return continuation;
   338   return continuation;
   334 JRT_END
   339 JRT_END
   335 
   340