RFR (XS) 8216977: ShowHiddenFrames use in java_lang_StackTraceElement::fill_in appears broken
David Holmes
david.holmes at oracle.com
Thu Aug 29 01:36:04 UTC 2019
Hi Coleen,
On 29/08/2019 6:25 am, coleen.phillimore at oracle.com wrote:
> Summary: Return NULL source file and negative line number for hidden
> frames.
>
> See bug for more details. Ran hs tier1-3 on linux-x64-debug and tier1
> on all platforms.
This issue made my head spin. I think what you have done has taken
things back to a sane place where ShowHiddenFrames is not being used to
do whacky things unrelated to hidden frames.
> open webrev at http://cr.openjdk.java.net/~coleenp/2019/8216977.01/webrev
> bug link https://bugs.openjdk.java.net/browse/JDK-8216977
src/hotspot/share/classfile/javaClasses.inline.hpp
Okay - this code was reporting a specially encoded "line number" that
actually contained the BCI, but only if ShowHiddenFrames was true.
Getting rid of this is good because it has nothing to do with hidden
frames and there wasn't even a check that the current frame was in fact
hidden.
If we want to report the BCI when no line number table exists then that
should be a specific enhancement to the API.
---
src/hotspot/share/classfile/javaClasses.cpp
Okay - this code was changing a NULL source file to "unknown" but only
if ShowHiddenFrames is true. Again getting rid of this is good as it
again has nothing to do with hidden frames.
If we want to report "unknown" rather than NULL, then we should make
that change independent of ShowHiddenFrames.
---
test/hotspot/jtreg/runtime/StackTrace/HiddenFrameTest.java
Can you add a comment explaining why String::concat meets the criteria
of "null source file" and "no line number table", as it is not at all
obvious to me what that should be the case. Also is that true if we
disable the String concatenation use of lambda? If not we should add the
necessary -XX:+ flag to the @run line.
For completeness can you check that the NPE only has one frame if
-XX:-ShowHiddenFrames is used.
Thanks,
David
-----
> Thanks,
> Coleen
More information about the hotspot-runtime-dev
mailing list