RFR: 8312623: SA add NestHost and NestMembers attributes when dumping class
Ashutosh Mehra
duke at openjdk.org
Thu Jul 27 16:19:41 UTC 2023
On Tue, 25 Jul 2023 05:36:15 GMT, David Holmes <dholmes at openjdk.org> wrote:
>> This patch adds NestHost and NestMembers attributes to the class dumped by SA.
>>
>> Testing: `test/hotspot/jtreg/serviceability/sa` and `test/jdk/sun/tools/jhsdb`
>> Manual testing by dumping `j.l.String` and `j.l.String$CaseInsensitiveComparator` classes.
>> `j.l.String` shows one entry in `NestMembers` attribute for `j.l.String$CaseInsensitiveComparator` and `j.l.String$CaseInsensitiveComparator` has `j.l.String` as its `NestHost`.
>
> We need to be sure this works as expected for top-level classes that have no nest members, and deeply nested nest members, plus dynamically injected hidden classes that are nest members. I'm unclear if this is intended to only expose the same details as would be statically defined in the attribute in the classfile?
@dholmes-ora sorry for responding late. I got sidetracked by some other work.
> We need to be sure this works as expected for top-level classes that have no nest members, and deeply nested nest members, plus dynamically injected hidden classes that are nest members.
I am not sure I understand this concern. We are getting nest-host and nest-members from the InstanceKlass. As long as this information is recorded in InstanceKlass, it would work. Can you please elaborate your concern about the cases you feel may not work.
> I'm unclear if this is intended to only expose the same details as would be statically defined in the attribute in the classfile?
It is to expose the details as the JVM sees, which may be different from what is statically defined in the classfile if agents are involved.
-------------
PR Comment: https://git.openjdk.org/jdk/pull/15005#issuecomment-1653934767
More information about the serviceability-dev
mailing list