< prev index next >

src/hotspot/share/gc/z/zDebug.gdb

Print this page




  31             # Should be marked
  32             if ((uintptr_t)$obj & (uintptr_t)ZAddressMetadataRemapped)
  33                 printf "(Not Marked, Remapped)"
  34             else
  35                 printf "(Not Marked, Not Remapped)"
  36             end
  37         else
  38             if ((uintptr_t)ZAddressGoodMask & (uintptr_t)ZAddressMetadataRemapped)
  39                 # Should be remapped
  40                 if ((uintptr_t)$obj & (uintptr_t)ZAddressMetadataMarked)
  41                     printf "(Marked, Not Remapped)"
  42                 else
  43                     printf "(Not Marked, Not Remapped)"
  44                 end
  45             else
  46                 # Unknown
  47                 printf "(Unknown)"
  48             end
  49         end
  50     end
  51     printf "\t Page: %llu\n", ((uintptr_t)$obj & ZAddressOffsetMask) >> ZPageSizeMinShift
  52     x/16gx $obj
  53     printf "Mark:  0x%016llx\tKlass: %s\n", (uintptr_t)$obj->_mark, (char*)$obj->_metadata->_klass->_name->_body
  54 end
  55 
  56 # Print heap page by pagetable index
  57 define zpp
  58     set $page = (ZPage*)((uintptr_t)ZHeap::_heap._pagetable._map._map[($arg0)] & ~1)
  59     printf "Page %p\n", $page
  60     print *$page
  61 end
  62 
  63 # Print pagetable
  64 define zpt
  65     printf "Pagetable (first 128 slots)\n"
  66     x/128gx ZHeap::_heap._pagetable._map._map
  67 end
  68 
  69 # Print live map
  70 define __zmarked
  71     set $livemap   = $arg0


  82 
  83     if $bit >= $size
  84         print "Error: Bit %z out of bounds (bitmap size %z)\n", $bit, $size
  85     else
  86         set $word_index = $bit / 64
  87         set $bit_index  = $bit % 64
  88         set $word       = $livemap._bitmap._map[$word_index]
  89         set $live_bit   = $word & (1 << $bit_index)
  90 
  91         printf "Object is "
  92         if $live_bit == 0
  93             printf "NOT "
  94         end
  95         printf "live (word index %d, bit index %d)\n", $word_index, $bit_index
  96     end
  97 end
  98 
  99 define zmarked
 100     set $addr          = $arg0
 101     set $obj           = ((uintptr_t)$addr & ZAddressOffsetMask)
 102     set $page_index    = $obj >> ZPageSizeMinShift
 103     set $page_entry    = (uintptr_t)ZHeap::_heap._pagetable._map._map[$page_index]
 104     set $page          = (ZPage*)($page_entry & ~1)
 105     set $page_start    = (uintptr_t)$page._virtual._start
 106     set $page_end      = (uintptr_t)$page._virtual._end
 107     set $page_seqnum   = $page._livemap._seqnum
 108     set $global_seqnum = ZGlobalSeqNum
 109 
 110     if $obj < $page_start || $obj >= $page_end
 111         printf "Error: %p not in page %p (start %p, end %p)\n", $obj, $page, $page_start, $page_end
 112     else
 113         printf "Page is "
 114         if $page_seqnum != $global_seqnum
 115             printf "NOT "
 116         end
 117         printf "live (page %p, page seqnum %d, global seqnum %d)\n", $page, $page_seqnum, $global_seqnum
 118 
 119         #if $page_seqnum == $global_seqnum
 120             set $offset = $obj - $page_start
 121             set $bit = $offset / 8
 122             __zmarked $page._livemap $bit




  31             # Should be marked
  32             if ((uintptr_t)$obj & (uintptr_t)ZAddressMetadataRemapped)
  33                 printf "(Not Marked, Remapped)"
  34             else
  35                 printf "(Not Marked, Not Remapped)"
  36             end
  37         else
  38             if ((uintptr_t)ZAddressGoodMask & (uintptr_t)ZAddressMetadataRemapped)
  39                 # Should be remapped
  40                 if ((uintptr_t)$obj & (uintptr_t)ZAddressMetadataMarked)
  41                     printf "(Marked, Not Remapped)"
  42                 else
  43                     printf "(Not Marked, Not Remapped)"
  44                 end
  45             else
  46                 # Unknown
  47                 printf "(Unknown)"
  48             end
  49         end
  50     end
  51     printf "\t Page: %llu\n", ((uintptr_t)$obj & ZAddressOffsetMask) >> ZGranuleSizeShift
  52     x/16gx $obj
  53     printf "Mark:  0x%016llx\tKlass: %s\n", (uintptr_t)$obj->_mark, (char*)$obj->_metadata->_klass->_name->_body
  54 end
  55 
  56 # Print heap page by pagetable index
  57 define zpp
  58     set $page = (ZPage*)((uintptr_t)ZHeap::_heap._pagetable._map._map[($arg0)] & ~1)
  59     printf "Page %p\n", $page
  60     print *$page
  61 end
  62 
  63 # Print pagetable
  64 define zpt
  65     printf "Pagetable (first 128 slots)\n"
  66     x/128gx ZHeap::_heap._pagetable._map._map
  67 end
  68 
  69 # Print live map
  70 define __zmarked
  71     set $livemap   = $arg0


  82 
  83     if $bit >= $size
  84         print "Error: Bit %z out of bounds (bitmap size %z)\n", $bit, $size
  85     else
  86         set $word_index = $bit / 64
  87         set $bit_index  = $bit % 64
  88         set $word       = $livemap._bitmap._map[$word_index]
  89         set $live_bit   = $word & (1 << $bit_index)
  90 
  91         printf "Object is "
  92         if $live_bit == 0
  93             printf "NOT "
  94         end
  95         printf "live (word index %d, bit index %d)\n", $word_index, $bit_index
  96     end
  97 end
  98 
  99 define zmarked
 100     set $addr          = $arg0
 101     set $obj           = ((uintptr_t)$addr & ZAddressOffsetMask)
 102     set $page_index    = $obj >> ZGranuleSizeShift
 103     set $page_entry    = (uintptr_t)ZHeap::_heap._pagetable._map._map[$page_index]
 104     set $page          = (ZPage*)($page_entry & ~1)
 105     set $page_start    = (uintptr_t)$page._virtual._start
 106     set $page_end      = (uintptr_t)$page._virtual._end
 107     set $page_seqnum   = $page._livemap._seqnum
 108     set $global_seqnum = ZGlobalSeqNum
 109 
 110     if $obj < $page_start || $obj >= $page_end
 111         printf "Error: %p not in page %p (start %p, end %p)\n", $obj, $page, $page_start, $page_end
 112     else
 113         printf "Page is "
 114         if $page_seqnum != $global_seqnum
 115             printf "NOT "
 116         end
 117         printf "live (page %p, page seqnum %d, global seqnum %d)\n", $page, $page_seqnum, $global_seqnum
 118 
 119         #if $page_seqnum == $global_seqnum
 120             set $offset = $obj - $page_start
 121             set $bit = $offset / 8
 122             __zmarked $page._livemap $bit


< prev index next >