RFR: 8346609: Improve MemorySegment.toString
Jorn Vernee
jvernee at openjdk.org
Thu Dec 19 17:44:34 UTC 2024
On Thu, 19 Dec 2024 09:48:23 GMT, Per Minborg <pminborg at openjdk.org> wrote:
> This PR proposes to improve the current `MemorySegment.toString()` method from:
>
> `MemorySegment{ address: 0x60000264c540, byteSize: 8 }`
>
> to
>
> `MemorySegment{ native, address: 0x60000264c540, byteSize: 8, confined, not alive, read-only, mapped }`
>
> Tests passes tier1-tier3
I'm not sure if all this information is useful to have in the toString output. I'll note that all of this information is publicly accessible through the MermorySegment interface aswell, so could be printed with additional print statements. Except for confined-ness, which is exposed through `isAccessibleBy` instead, since confined-ness is not a property of memory segments, but of arenas (and I don't think we should expose it directly like this).
Subjectively, I think the things that are reasonable to expose in the toString output are the things that are already exposed today: the heap base, address/offset, and size. I would find it reasonable to add `isAlive=true/false` to that, but it's not a property of the MS itself, but of the scope that it is attached to, so I'm not sure. But, read-only, and mapped are things I don't think are relevant often enough to include.
If you want a complete overview of the properties of the object, I think what you really want is a debugger :)
-------------
PR Review: https://git.openjdk.org/jdk/pull/22826#pullrequestreview-2515753797
More information about the core-libs-dev
mailing list