hotspot/src/share/vm/interpreter/bytecodeInterpreter.cpp
changeset 35477 7a00b08d27bc
parent 35216 71c463a17b3b
child 35518 cd2749cebb92
equal deleted inserted replaced
35474:8333d76c7fee 35477:7a00b08d27bc
     1 /*
     1 /*
     2  * Copyright (c) 2002, 2015, Oracle and/or its affiliates. All rights reserved.
     2  * Copyright (c) 2002, 2016, Oracle and/or its affiliates. All rights reserved.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     3  * DO NOT ALTER OR REMOVE COPYRIGHT NOTICES OR THIS FILE HEADER.
     4  *
     4  *
     5  * This code is free software; you can redistribute it and/or modify it
     5  * This code is free software; you can redistribute it and/or modify it
     6  * under the terms of the GNU General Public License version 2 only, as
     6  * under the terms of the GNU General Public License version 2 only, as
     7  * published by the Free Software Foundation.
     7  * published by the Free Software Foundation.
  2778       // Place exception on top of stack
  2778       // Place exception on top of stack
  2779       SET_STACK_OBJECT(except_oop(), 0);
  2779       SET_STACK_OBJECT(except_oop(), 0);
  2780       MORE_STACK(1);
  2780       MORE_STACK(1);
  2781       pc = METHOD->code_base() + continuation_bci;
  2781       pc = METHOD->code_base() + continuation_bci;
  2782       if (log_is_enabled(Info, exceptions)) {
  2782       if (log_is_enabled(Info, exceptions)) {
  2783         ResourceMark rm;
  2783         ResourceMark rm(thread);
  2784         log_info(exceptions)("Exception <%s> (" INTPTR_FORMAT ")\n"
  2784         stringStream tempst;
  2785                              " thrown in interpreter method <%s>\n"
  2785         tempst.print("interpreter method <%s>\n"
  2786                              " at bci %d, continuing at %d for thread " INTPTR_FORMAT,
  2786                      " at bci %d, continuing at %d for thread " INTPTR_FORMAT,
  2787                              except_oop->print_value_string(), p2i(except_oop()),
  2787                      METHOD->print_value_string(),
  2788                              METHOD->print_value_string(),
  2788                      (int)(istate->bcp() - METHOD->code_base()),
  2789                              (int)(istate->bcp() - METHOD->code_base()),
  2789                      (int)continuation_bci, p2i(THREAD));
  2790                              (int)continuation_bci, p2i(THREAD));
  2790         Exceptions::log_exception(except_oop, tempst);
  2791       }
  2791       }
  2792       // for AbortVMOnException flag
  2792       // for AbortVMOnException flag
  2793       Exceptions::debug_check_abort(except_oop);
  2793       Exceptions::debug_check_abort(except_oop);
  2794 
  2794 
  2795       // Update profiling data.
  2795       // Update profiling data.
  2796       BI_PROFILE_ALIGN_TO_CURRENT_BCI();
  2796       BI_PROFILE_ALIGN_TO_CURRENT_BCI();
  2797       goto run;
  2797       goto run;
  2798     }
  2798     }
  2799     if (log_is_enabled(Info, exceptions)) {
  2799     if (log_is_enabled(Info, exceptions)) {
  2800       ResourceMark rm;
  2800       ResourceMark rm;
  2801       log_info(exceptions)("Exception <%s> (" INTPTR_FORMAT ")\n"
  2801       stringStream tempst;
  2802                            " thrown in interpreter method <%s>\n"
  2802       tempst.print("interpreter method <%s>\n"
  2803                            " at bci %d, unwinding for thread " INTPTR_FORMAT,
  2803              " at bci %d, unwinding for thread " INTPTR_FORMAT,
  2804                            except_oop->print_value_string(), p2i(except_oop()),
  2804              METHOD->print_value_string(),
  2805                            METHOD->print_value_string(),
  2805              (int)(istate->bcp() - METHOD->code_base()),
  2806                            (int)(istate->bcp() - METHOD->code_base()),
  2806              p2i(THREAD));
  2807                            p2i(THREAD));
  2807       Exceptions::log_exception(except_oop, tempst);
  2808     }
  2808     }
  2809     // for AbortVMOnException flag
  2809     // for AbortVMOnException flag
  2810     Exceptions::debug_check_abort(except_oop);
  2810     Exceptions::debug_check_abort(except_oop);
  2811 
  2811 
  2812     // No handler in this activation, unwind and try again
  2812     // No handler in this activation, unwind and try again