RFR: 8311993: Test serviceability/sa/UniqueVtableTest.java failed: duplicate vtables detected [v3]

Alex Menkov amenkov at openjdk.org
Fri Aug 30 00:08:21 UTC 2024


On Thu, 29 Aug 2024 20:51:45 GMT, Chris Plummer <cjplummer at openjdk.org> wrote:

> We have one test that does a findsym of MaxJNILocalCapacity (ClhsdbFindPC.java). I'm guessing this would fail if native lookups were disabled. Note findsym was added less than 3 years ago.

The test fails on isSharingEnabled, but I suppose it will fail to find MaxJNILocalCapacity too

> It seems then that theoretically the dll lookup should never be needed, but due to the bug this PR is fixing, it is needed as a fallback when windbg lookup fails to do the right thing. I wonder if there are also other types of symbols we lookup that would only be found with the dll lookup.

As far as I understand dll lookup is needed to get vtables for classes (and I suppose it's the only case).
I don't think it's "right thing" to return offset of "jvm!class_name::`vftable'" for decorated symbols (and especially for pointers).
Maybe vtable lookup can be implemented by searching for "class_name::`vftable'", then dll lookup (and all this exported symbols) can be dropped

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

PR Comment: https://git.openjdk.org/jdk/pull/20684#issuecomment-2319505224


More information about the serviceability-dev mailing list