Re: [PATCH 3/3] perf jvmti: Fix demangling Java symbols
From: Arnaldo Carvalho de Melo
Date: Wed May 27 2020 - 18:34:10 EST
Em Wed, May 27, 2020 at 01:23:00PM -0300, Arnaldo Carvalho de Melo escreveu:
> Em Wed, May 27, 2020 at 11:20:57AM -0300, Arnaldo Carvalho de Melo escreveu:
> > Em Mon, Apr 27, 2020 at 02:15:16PM +0800, Nick Gasson escreveu:
> > > For a Java method signature like:
> > >
> > > Ljava/lang/AbstractStringBuilder;appendChars(Ljava/lang/String;II)V
> > >
> > > The demangler produces:
> > >
> > > void class java.lang.AbstractStringBuilder.appendChars(class java.lang., shorttring., int, int)
> > >
> > > The arguments should be (java.lang.String, int, int) but the demangler
> > > interprets the "S" in String as the type code for "short". Correct this
> > > and two other minor things:
> > >
> > > - There is no "bool" type in Java, should be "boolean".
> > >
> > > - The demangler prepends "class" to every Java class name. This is not
> > > standard Java syntax and it wastes a lot of horizontal space if the
> > > signature is long. Remove this as there isn't any ambiguity between
> > > class names and primitives.
> > >
> > > Also added a test case.
> >
> > So, I took this and split into a patch for the new 'perf test java' and
> > then the fix, so that we can see the problem being detected and then
> > apply the fix and see it fixed, the last patch in this series thus
> > became:
>
> This is in my tmp.perf/core branch pending a round of testing, after
> that it'll move to perf/core on its way to 5.8, thanks.
All tests passed, moved to perf/core.
- Arnaldo