-
New Feature
-
Resolution: Fixed
-
P4
-
17, 21, 24
-
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.
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.
- relates to
-
JDK-8229278 Improve hs_err location printing to assume less about GC internals
-
- Resolved
-
- links to
-
Commit(master) openjdk/jdk/f0b251d7
-
Review(master) openjdk/jdk/21870