Integrated: 8343531: Improve print_location for invalid heap pointers
Volker Simonis
simonis at openjdk.org
Thu Nov 7 12:13:47 UTC 2024
On Mon, 4 Nov 2024 09:43:18 GMT, Volker Simonis <simonis at openjdk.org> wrote:
> 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.
This pull request has now been integrated.
Changeset: f0b251d7
Author: Volker Simonis <simonis at openjdk.org>
URL: https://git.openjdk.org/jdk/commit/f0b251d76078e8d5b47e967b0449c4cbdcb5a005
Stats: 8 lines in 1 file changed: 6 ins; 0 del; 2 mod
8343531: Improve print_location for invalid heap pointers
Reviewed-by: shade, tschatzl, ayang
-------------
PR: https://git.openjdk.org/jdk/pull/21870
More information about the hotspot-gc-dev
mailing list