Uploaded image for project: 'JDK'
  1. JDK
  2. JDK-8343531

Improve print_location for invalid heap pointers

XMLWordPrintable

    • Icon: New Feature New Feature
    • Resolution: Fixed
    • Icon: P4 P4
    • 24
    • 17, 21, 24
    • hotspot
    • gc
    • b24
    • generic

      Currently `BlockLocationPrinter<CollectedHeapT>::print_location()` checks for a pointer if it points into the heap and if that's true, it either prints it as an oop if `is_valid_obj()` is true or it tries to find the the start address of an oop for that pointer by calling `CollectedHeapT::heap()->block_start()`.

      However, the `block_start()` functionality is not fully implemented for all GCs (e.g. the young generation of `ParallelScavengeHeap`) and for these cases `block_start()` returns NULL. Because of this NULL return value `os::print_location()` will finally qualify the corresponding pointer as pointing "into unknown readable memory" although we already know that it actually points into an invalid heap area.

      In such cases, print at least that the pointer is pointing into an unknown part of the heap instead of just saying that it points into unknown memory.

            simonis Volker Simonis
            simonis Volker Simonis
            Votes:
            0 Vote for this issue
            Watchers:
            4 Start watching this issue

              Created:
              Updated:
              Resolved: