by loftar » Mon Oct 26, 2020 10:31 pm
Mint seems to be based on Debian, so it sounds like you got the debug symbols properly installed. Why Java nevertheless can't reconstruct the stack is less obvious, however. It could conceivably be that some of the debugging formats have changed since Java 8, so one relatively easy thing to try might be to upgrade to, for example, Java 11. In Debian at least, Java 11 is the default anyway. Did you install Java via your package manager?
If upgrading Java doesn't help with getting a useful stacktrace, then I think it might be hard to proceed without going quite deep. If it were me, I'd try to get gdb to break on the real fault and use it to print the stack at that point. The problem, however, is that Hotspot uses SIGSEGV internally, so one can't just attach to a Java process and and have gdb autobreak on SIGSEGV (which is otherwise its default behavior). Rather, I think the somewhat realistic way to handle it would be to unblock SIGSEGV in gdb (handle SIGSEGV pass nostop noprint) and instead set a breakpoint on the Hotspot function handling an invalid SIGSEGV, which, without being an expert on Hotspot's internals, seems to be the function report_and_die. In order to do that, however, you'd need the debugging symbols for Java installed as well, which, if you installed Java from your distribution's APT repos, and if Mint follows Debian's conventions, should be in the package openjdk-8-dbg or openjdk-11-dbg, depending on what version of Java you end up using.
I think that's about the best advise I can give, unfortunately.
"Object-oriented design is the roman numerals of computing." -- Rob Pike