hotspot/src/share/vm/oops/markOop.cpp
changeset 31782 b23b74f8ae8d
parent 31592 43f48e165466
child 33148 68fa8b6c4340
equal deleted inserted replaced
31781:6bc2497120a9 31782:b23b74f8ae8d
    30 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
    30 PRAGMA_FORMAT_MUTE_WARNINGS_FOR_GCC
    31 
    31 
    32 void markOopDesc::print_on(outputStream* st) const {
    32 void markOopDesc::print_on(outputStream* st) const {
    33   if (is_marked()) {
    33   if (is_marked()) {
    34     st->print(" marked(" INTPTR_FORMAT ")", value());
    34     st->print(" marked(" INTPTR_FORMAT ")", value());
       
    35   } else if (has_monitor()) {
       
    36     // have to check has_monitor() before is_locked()
       
    37     st->print(" monitor(" INTPTR_FORMAT ")=", value());
       
    38     ObjectMonitor* mon = monitor();
       
    39     if (mon == NULL) {
       
    40       st->print("NULL (this should never be seen!)");
       
    41     } else {
       
    42       st->print("{count=" INTPTR_FORMAT ",waiters=" INTPTR_FORMAT
       
    43                 ",recursions=" INTPTR_FORMAT ",owner=" INTPTR_FORMAT "}",
       
    44                 mon->count(), mon->waiters(), mon->recursions(),
       
    45                 p2i(mon->owner()));
       
    46     }
    35   } else if (is_locked()) {
    47   } else if (is_locked()) {
    36     st->print(" locked(" INTPTR_FORMAT ")->", value());
    48     st->print(" locked(" INTPTR_FORMAT ")->", value());
    37     if (is_neutral()) {
    49     if (is_neutral()) {
    38       st->print("is_neutral");
    50       st->print("is_neutral");
    39       if (has_no_hash()) st->print(" no_hash");
    51       if (has_no_hash()) {
    40       else st->print(" hash=" INTPTR_FORMAT, hash());
    52         st->print(" no_hash");
       
    53       } else {
       
    54         st->print(" hash=" INTPTR_FORMAT, hash());
       
    55       }
    41       st->print(" age=%d", age());
    56       st->print(" age=%d", age());
    42     } else if (has_bias_pattern()) {
    57     } else if (has_bias_pattern()) {
    43       st->print("is_biased");
    58       st->print("is_biased");
    44       JavaThread* jt = biased_locker();
    59       JavaThread* jt = biased_locker();
    45       st->print(" biased_locker=" INTPTR_FORMAT, p2i(jt));
    60       st->print(" biased_locker=" INTPTR_FORMAT, p2i(jt));
    46     } else if (has_monitor()) {
       
    47       ObjectMonitor* mon = monitor();
       
    48       if (mon == NULL)
       
    49         st->print("monitor=NULL");
       
    50       else {
       
    51         BasicLock * bl = (BasicLock *) mon->owner();
       
    52         st->print("monitor={count=" INTPTR_FORMAT ",waiters=" INTPTR_FORMAT ",recursions=" INTPTR_FORMAT ",owner=" INTPTR_FORMAT "}",
       
    53                 mon->count(), mon->waiters(), mon->recursions(), p2i(bl));
       
    54       }
       
    55     } else {
    61     } else {
    56       st->print("??");
    62       st->print("??");
    57     }
    63     }
    58   } else {
    64   } else {
    59     assert(is_unlocked() || has_bias_pattern(), "just checking");
    65     assert(is_unlocked() || has_bias_pattern(), "just checking");