Closed jerboaa closed 1 year ago
This look like an upstream issue.
GDB reports that toString
is expecting a parameter of type debug_symbols_smoke.ClassA
while toString
doesn't take any parameters.
@adinn does it ring any bells?
Here is what a regular info functions *.smoke.*
produces in gdb for me with a 22.3-dev build:
(gdb) info functions .*smoke.*
All functions matching regular expression ".*smoke.*":
File debug_symbols_smoke/ClassA.java:
37: java.lang.String *debug_symbols_smoke.ClassA::toString(debug_symbols_smoke.ClassA *);
File debug_symbols_smoke/Main.java:
void debug_symbols_smoke.Main$$Lambda$763/0x00000007c08fc418::accept(debug_symbols_smoke.Main$$Lambda$763/0x00000007c08fc418 *, java.lang.Object *);
50: void debug_symbols_smoke.Main::lambda$thisIsTheEnd$0(java.io.ByteArrayOutputStream *, debug_symbols_smoke.ClassA *);
64: void debug_symbols_smoke.Main::main(java.lang.String[] *);
49: void debug_symbols_smoke.Main::thisIsTheEnd(java.util.List *);
On 21.3 we had this for the same application:
(gdb) info functions .*smoke.*
All functions matching regular expression ".*smoke.*":
File debug_symbols_smoke/ClassA.java:
java.lang.String *debug_symbols_smoke.ClassA::toString(void);
File debug_symbols_smoke/Main$$Lambda$584/0x00000007c04e4d60.java:
void debug_symbols_smoke.Main$$Lambda$584.0x00000007c04e4d60::accept(java.lang.Object *);
File debug_symbols_smoke/Main.java:
void debug_symbols_smoke.Main::lambda$thisIsTheEnd$0(java.io.ByteArrayOutputStream *, debug_symbols_smoke.ClassA *);
void debug_symbols_smoke.Main::main(java.lang.String[] *);
void debug_symbols_smoke.Main::thisIsTheEnd(java.util.List *);
The regression appears after https://github.com/oracle/graal/pull/4811 and more specifically https://github.com/oracle/graal/pull/4811/commits/87722a0665ed61751e9c6a87c48f636c30091e67
It's still not clear to me why though. :eyes:
It looks like the addition of DW_AT_linkage_name
results in gdb
printing parameters with DW_AT_artificial
set (i.e. the this
parameter).
Yes, I believe the problem here is that the the method signature is being printed with an extra type for this
. I am not sure why that is happening nor why it is not an issue for other methods. I will look into it ASAP.
OK, I'll file an upstream issue and assign to you @adinn. Sound good?
@jerboaa Thrilling!
@adinn Here you go: https://github.com/oracle/graal/issues/5064
Fails with: