Skip to content
New issue

Have a question about this project? Sign up for a free GitHub account to open an issue and contact its maintainers and the community.

By clicking “Sign up for GitHub”, you agree to our terms of service and privacy statement. We’ll occasionally send you account related emails.

Already on GitHub? Sign in to your account

Provide debug symbols package for download #284

Open
holy-moly-555 opened this issue Aug 26, 2022 · 7 comments
Open

Provide debug symbols package for download #284

holy-moly-555 opened this issue Aug 26, 2022 · 7 comments
Labels
enhancement New feature or request

Comments

@holy-moly-555
Copy link

holy-moly-555 commented Aug 26, 2022

Is your feature request related to a problem?

Our application, running on corretto 11.0.16.8.1, shall be monitored with an APM Agent. For some features, this agent relies on the jvm async-profiler.

The profiler however requires one to have the jvm debug symbols installed. With openjdk runtimes, these can be easily installed through another package, e.g. the openjdk-11-dbg APT package. However, I couldn't find any information about debug symbols for corretto.

Clearly, these do not come with the corretto jdk package itself since gdb command outputs:

user@host:~/Downloads/amazon-corretto-11.0.16.9.1-linux-x64$ gdb bin/java
GNU gdb (Ubuntu 9.2-0ubuntu1~20.04.1) 9.2
Copyright (C) 2020 Free Software Foundation, Inc.
License GPLv3+: GNU GPL version 3 or later <http://gnu.org/licenses/gpl.html>
This is free software: you are free to change and redistribute it.
There is NO WARRANTY, to the extent permitted by law.
Type "show copying" and "show warranty" for details.
This GDB was configured as "x86_64-linux-gnu".
Type "show configuration" for configuration details.
For bug reporting instructions, please see:
<http://www.gnu.org/software/gdb/bugs/>.
Find the GDB manual and other documentation resources online at:
    <http://www.gnu.org/software/gdb/documentation/>.

For help, type "help".
Type "apropos word" to search for commands related to "word"...
Reading symbols from bin/java...
(No debugging symbols found in bin/java)

Describe a solution you would like

I want to be able to download the debug symbols for the respective corretto version.
The SapMachine for example lets you download the debug symbols (they call them bin symbols) from their release page.

Describe alternatives you have considered

Building the jdk by my own as described here would be an alternative but in my opinion a very bad and user-unfriendly alternative.

Additional context

None.

@holy-moly-555 holy-moly-555 added the enhancement New feature or request label Aug 26, 2022
@holy-moly-555
Copy link
Author

Hi @navyxliu,

thanks for your reply and the temporary files. I will test the apm agent with them and come back to you afterwards.

I noticed that no .diz file is present in /lib/jli. Is this correct?

Kind regards.

@navyxliu
Copy link
Contributor

It looks like we ditch that here. bug? We need to review this code snippet.

libjli is a trampoline. Do you need it to debug your code? the hotspot is libjvm.so

@alvdavi
Copy link
Contributor

alvdavi commented Sep 9, 2022

We should probably just grab every .diz with */**/*.diz

@holy-moly-555
Copy link
Author

holy-moly-555 commented May 16, 2023

@navyxliu @alvdavi
Any news about this issue?
I still can not find the debug symbols on the release pages...

@apangin
Copy link

apangin commented May 16, 2023

Hi @holy-moly-555,
If you ask about debug symbols for profiling, then you need nothing extra to install.

  1. Corretto binaries already have symbols embedded. You may check it with
    nm /usr/java/amazon-corretto-11.0.19.7.1-linux-x64/lib/server/libjvm.so | grep _ZN
    This will print thousands of symbol names.
  2. In any case, async-profiler does not require JVM debug symbols to work. In the worst case, profiles will have libjvm.so printed instead of JVM functions, but that's the only inconvenience in lack of debug symbols. As I mentioned above, this is not the issue with Corretto.

I guess the confusion is caused by the gdb message (No debugging symbols found in bin/java). The message is actually about debug info which is not the same as the symbol table required to display correct function names in the profiler output.

@holy-moly-555
Copy link
Author

holy-moly-555 commented May 25, 2023

Hi @apangin,
thanks for the explanation. I can confirm that the profiling feature works on our AWS services running corretto.

@navyxliu @alvdavi I'll let you decide if the issue should get closed. My personal issue is solved.

Regards.

Sign up for free to join this conversation on GitHub. Already have an account? Sign in to comment
Labels
enhancement New feature or request
Projects
None yet
Development

No branches or pull requests

4 participants