RFR: 8343531: Improve print_location for invalid heap pointers [v2]

Volker Simonis simonis at openjdk.org
Mon Nov 4 10:46:02 UTC 2024


> 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. 
> 
> I've manually tested the new functionality in GDB.

Volker Simonis has updated the pull request incrementally with one additional commit since the last revision:

  Small refactoring based on tschatzl's review

-------------

Changes:
  - all: https://git.openjdk.org/jdk/pull/21870/files
  - new: https://git.openjdk.org/jdk/pull/21870/files/80cc0ee7..f5886102

Webrevs:
 - full: https://webrevs.openjdk.org/?repo=jdk&pr=21870&range=01
 - incr: https://webrevs.openjdk.org/?repo=jdk&pr=21870&range=00-01

  Stats: 4 lines in 1 file changed: 1 ins; 2 del; 1 mod
  Patch: https://git.openjdk.org/jdk/pull/21870.diff
  Fetch: git fetch https://git.openjdk.org/jdk.git pull/21870/head:pull/21870

PR: https://git.openjdk.org/jdk/pull/21870


More information about the hotspot-gc-dev mailing list