38 <xsl:text> |
38 <xsl:text> |
39 # include "precompiled.hpp" |
39 # include "precompiled.hpp" |
40 # include "memory/resourceArea.hpp" |
40 # include "memory/resourceArea.hpp" |
41 # include "utilities/macros.hpp" |
41 # include "utilities/macros.hpp" |
42 #if INCLUDE_JVMTI |
42 #if INCLUDE_JVMTI |
|
43 # include "logging/log.hpp" |
43 # include "oops/oop.inline.hpp" |
44 # include "oops/oop.inline.hpp" |
44 # include "prims/jvmtiEnter.hpp" |
45 # include "prims/jvmtiEnter.hpp" |
45 # include "prims/jvmtiRawMonitor.hpp" |
46 # include "prims/jvmtiRawMonitor.hpp" |
46 # include "prims/jvmtiUtil.hpp" |
47 # include "prims/jvmtiUtil.hpp" |
47 |
48 |
413 |
414 |
414 <xsl:if test="$trace='Trace'"> |
415 <xsl:if test="$trace='Trace'"> |
415 <xsl:value-of select="$space"/> |
416 <xsl:value-of select="$space"/> |
416 <xsl:text> if (trace_flags) {</xsl:text> |
417 <xsl:text> if (trace_flags) {</xsl:text> |
417 <xsl:value-of select="$space"/> |
418 <xsl:value-of select="$space"/> |
418 <xsl:text> tty->print_cr("JVMTI [non-attached thread] %s %s", func_name,</xsl:text> |
419 <xsl:text> log_trace(jvmti)("[non-attached thread] %s %s", func_name,</xsl:text> |
419 <xsl:value-of select="$space"/> |
420 <xsl:value-of select="$space"/> |
420 <xsl:text> JvmtiUtil::error_name(JVMTI_ERROR_UNATTACHED_THREAD));</xsl:text> |
421 <xsl:text> JvmtiUtil::error_name(JVMTI_ERROR_UNATTACHED_THREAD));</xsl:text> |
421 <xsl:value-of select="$space"/> |
422 <xsl:value-of select="$space"/> |
422 <xsl:text> }</xsl:text> |
423 <xsl:text> }</xsl:text> |
423 </xsl:if> |
424 </xsl:if> |
450 <xsl:value-of select="@id"/> |
451 <xsl:value-of select="@id"/> |
451 <xsl:text> == 0) { |
452 <xsl:text> == 0) { |
452 </xsl:text> |
453 </xsl:text> |
453 <xsl:if test="$trace='Trace'"> |
454 <xsl:if test="$trace='Trace'"> |
454 <xsl:text> if (trace_flags) { |
455 <xsl:text> if (trace_flags) { |
455 tty->print_cr("JVMTI [%s] %s %s", curr_thread_name, func_name, |
456 log_trace(jvmti)("[%s] %s %s", curr_thread_name, func_name, |
456 JvmtiUtil::error_name(JVMTI_ERROR_MUST_POSSESS_CAPABILITY)); |
457 JvmtiUtil::error_name(JVMTI_ERROR_MUST_POSSESS_CAPABILITY)); |
457 } |
458 } |
458 </xsl:text> |
459 </xsl:text> |
459 </xsl:if> |
460 </xsl:if> |
460 <xsl:text> return JVMTI_ERROR_MUST_POSSESS_CAPABILITY; |
461 <xsl:text> return JVMTI_ERROR_MUST_POSSESS_CAPABILITY; |
484 <xsl:when test="count(@phase)=0 or contains(@phase,'live')"> |
485 <xsl:when test="count(@phase)=0 or contains(@phase,'live')"> |
485 <xsl:text> if(!JvmtiEnv::is_vm_live()) { |
486 <xsl:text> if(!JvmtiEnv::is_vm_live()) { |
486 </xsl:text> |
487 </xsl:text> |
487 <xsl:if test="$trace='Trace'"> |
488 <xsl:if test="$trace='Trace'"> |
488 <xsl:text> if (trace_flags) { |
489 <xsl:text> if (trace_flags) { |
489 tty->print_cr("JVMTI [-] %s %s", func_name, |
490 log_trace(jvmti)("[-] %s %s", func_name, |
490 JvmtiUtil::error_name(JVMTI_ERROR_WRONG_PHASE)); |
491 JvmtiUtil::error_name(JVMTI_ERROR_WRONG_PHASE)); |
491 } |
492 } |
492 </xsl:text> |
493 </xsl:text> |
493 </xsl:if> |
494 </xsl:if> |
494 <xsl:text> return JVMTI_ERROR_WRONG_PHASE; |
495 <xsl:text> return JVMTI_ERROR_WRONG_PHASE; |
507 </xsl:if> |
508 </xsl:if> |
508 <xsl:text>) { |
509 <xsl:text>) { |
509 </xsl:text> |
510 </xsl:text> |
510 <xsl:if test="$trace='Trace'"> |
511 <xsl:if test="$trace='Trace'"> |
511 <xsl:text> if (trace_flags) { |
512 <xsl:text> if (trace_flags) { |
512 tty->print_cr("JVMTI [-] %s %s", func_name, |
513 log_trace(jvmti)("[-] %s %s", func_name, |
513 JvmtiUtil::error_name(JVMTI_ERROR_WRONG_PHASE)); |
514 JvmtiUtil::error_name(JVMTI_ERROR_WRONG_PHASE)); |
514 } |
515 } |
515 </xsl:text> |
516 </xsl:text> |
516 </xsl:if> |
517 </xsl:if> |
517 <xsl:text> return JVMTI_ERROR_WRONG_PHASE; |
518 <xsl:text> return JVMTI_ERROR_WRONG_PHASE; |
520 <xsl:if test="contains(@phase,'start')"> |
521 <xsl:if test="contains(@phase,'start')"> |
521 <xsl:text> if(JvmtiEnv::get_phase(env)!=JVMTI_PHASE_START && JvmtiEnv::get_phase()!=JVMTI_PHASE_LIVE) { |
522 <xsl:text> if(JvmtiEnv::get_phase(env)!=JVMTI_PHASE_START && JvmtiEnv::get_phase()!=JVMTI_PHASE_LIVE) { |
522 </xsl:text> |
523 </xsl:text> |
523 <xsl:if test="$trace='Trace'"> |
524 <xsl:if test="$trace='Trace'"> |
524 <xsl:text> if (trace_flags) { |
525 <xsl:text> if (trace_flags) { |
525 tty->print_cr("JVMTI [-] %s %s", func_name, |
526 log_trace(jvmti)("[-] %s %s", func_name, |
526 JvmtiUtil::error_name(JVMTI_ERROR_WRONG_PHASE)); |
527 JvmtiUtil::error_name(JVMTI_ERROR_WRONG_PHASE)); |
527 } |
528 } |
528 </xsl:text> |
529 </xsl:text> |
529 </xsl:if> |
530 </xsl:if> |
530 <xsl:text> return JVMTI_ERROR_WRONG_PHASE; |
531 <xsl:text> return JVMTI_ERROR_WRONG_PHASE; |
539 JvmtiEnv* jvmti_env = JvmtiEnv::JvmtiEnv_from_jvmti_env(env); |
540 JvmtiEnv* jvmti_env = JvmtiEnv::JvmtiEnv_from_jvmti_env(env); |
540 if (!jvmti_env->is_valid()) { |
541 if (!jvmti_env->is_valid()) { |
541 </xsl:text> |
542 </xsl:text> |
542 <xsl:if test="$trace='Trace'"> |
543 <xsl:if test="$trace='Trace'"> |
543 <xsl:text> if (trace_flags) { |
544 <xsl:text> if (trace_flags) { |
544 tty->print_cr("JVMTI [%s] %s %s env=" PTR_FORMAT, curr_thread_name, func_name, |
545 log_trace(jvmti)("[%s] %s %s env=" PTR_FORMAT, curr_thread_name, func_name, |
545 JvmtiUtil::error_name(JVMTI_ERROR_INVALID_ENVIRONMENT), p2i(env)); |
546 JvmtiUtil::error_name(JVMTI_ERROR_INVALID_ENVIRONMENT), p2i(env)); |
546 } |
547 } |
547 </xsl:text> |
548 </xsl:text> |
548 </xsl:if> |
549 </xsl:if> |
549 <xsl:text> return JVMTI_ERROR_INVALID_ENVIRONMENT; |
550 <xsl:text> return JVMTI_ERROR_INVALID_ENVIRONMENT; |
665 </xsl:text> |
666 </xsl:text> |
666 <xsl:apply-templates select="../.." mode="traceIn"> |
667 <xsl:apply-templates select="../.." mode="traceIn"> |
667 <xsl:with-param name="endParam" select="."/> |
668 <xsl:with-param name="endParam" select="."/> |
668 </xsl:apply-templates> |
669 </xsl:apply-templates> |
669 <xsl:text> } |
670 <xsl:text> } |
670 tty->print_cr("JVMTI [%s] %s } %s - erroneous arg is </xsl:text> |
671 log_error(jvmti)("[%s] %s } %s - erroneous arg is </xsl:text> |
671 <xsl:value-of select="@id"/> |
672 <xsl:value-of select="@id"/> |
672 <xsl:value-of select="$comment"/> |
673 <xsl:value-of select="$comment"/> |
673 <xsl:text>", curr_thread_name, func_name, |
674 <xsl:text>", curr_thread_name, func_name, |
674 JvmtiUtil::error_name(</xsl:text> |
675 JvmtiUtil::error_name(</xsl:text> |
675 <xsl:value-of select="$err"/> |
676 <xsl:value-of select="$err"/> |
690 <xsl:text> if ( err != JVMTI_ERROR_NONE && (trace_flags & JvmtiTrace::SHOW_ERROR) != 0) { |
691 <xsl:text> if ( err != JVMTI_ERROR_NONE && (trace_flags & JvmtiTrace::SHOW_ERROR) != 0) { |
691 if ((trace_flags & JvmtiTrace::SHOW_IN) == 0) { |
692 if ((trace_flags & JvmtiTrace::SHOW_IN) == 0) { |
692 </xsl:text> |
693 </xsl:text> |
693 <xsl:apply-templates select="." mode="traceIn"/> |
694 <xsl:apply-templates select="." mode="traceIn"/> |
694 <xsl:text> } |
695 <xsl:text> } |
695 tty->print_cr("JVMTI [%s] %s } %s", curr_thread_name, func_name, |
696 log_error(jvmti)("[%s] %s } %s", curr_thread_name, func_name, |
696 JvmtiUtil::error_name(err)); |
697 JvmtiUtil::error_name(err)); |
697 } else if ((trace_flags & JvmtiTrace::SHOW_OUT) != 0) { |
698 } else if ((trace_flags & JvmtiTrace::SHOW_OUT) != 0) { |
698 tty->print_cr("JVMTI [%s] %s }", curr_thread_name, func_name); |
699 log_trace(jvmti)("[%s] %s }", curr_thread_name, func_name); |
699 } |
700 } |
700 </xsl:text> |
701 </xsl:text> |
701 </xsl:if> |
702 </xsl:if> |
702 </xsl:template> |
703 </xsl:template> |
703 |
704 |
704 <xsl:template match="function" mode="traceIn"> |
705 <xsl:template match="function" mode="traceIn"> |
705 <xsl:param name="endParam"></xsl:param> |
706 <xsl:param name="endParam"></xsl:param> |
706 <xsl:text> tty->print_cr("JVMTI [%s] %s { </xsl:text> |
707 <xsl:text> log_trace(jvmti)("[%s] %s { </xsl:text> |
707 <xsl:apply-templates select="parameters" mode="traceInFormat"> |
708 <xsl:apply-templates select="parameters" mode="traceInFormat"> |
708 <xsl:with-param name="endParam" select="$endParam"/> |
709 <xsl:with-param name="endParam" select="$endParam"/> |
709 </xsl:apply-templates> |
710 </xsl:apply-templates> |
710 <xsl:text>", curr_thread_name, func_name</xsl:text> |
711 <xsl:text>", curr_thread_name, func_name</xsl:text> |
711 <xsl:apply-templates select="parameters" mode="traceInValue"> |
712 <xsl:apply-templates select="parameters" mode="traceInValue"> |