-
Notifications
You must be signed in to change notification settings - Fork 261
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
Not able to resolve symbols #39
Comments
@luan-cestari I'm not sure I understand. Could you rephrase your question or add some concrete information which output is incorrect? Does the agent generate the /tmp/perf-.map file? What does it contain? |
Hi @jrudolph Thank you very much for the prompt reply. The problem that I got is when using some tools such as perf-java-top there are many libjvm.so Objects that point to some hexadecimal numbers (memory address probably) which instead I would expect to see the java methods called. Below a snippet of the perf-java-top output for example:
In Flame Graphs I see the same problem, almost all the java stack are just "libjvm.so" , instead the name of the Java class and the method invoked. I think I'm using the right JVM options and a compatible JVM version , as I mentioned in the previous comment. I tested to use perf-java-top with my intellij IDE (which basically is a java process as well) and it seems to work fine (the Symbols are all resolved to java classes and methods) . So I think it might be something in my project or in jvm that I'm missing to configure. Did you get something similar to this issue before? Thank you again for the help. Kind regards, |
Java code will show up under "perf-25647.map", in your example the JVM Interpreter is shown and |
For reference, I have no issue with seeing libjvm.so symbols on Oracle JDK 1.8 update 92, e.g.:
This is not a special build, but is a JDK, not a JRE download. It might be a build specific issue. |
@jrudolph Sorry, I forgot to mention that I'm already using the package that comes with debug symbols (or at least it should be). I agree with you that the program is perhaps didn't have enough time to warm up. I will do some more tests here. @nitsanw yeah, I was thinking something like that. Do you know someone from openjdk community that could confirm and address and issue there? I don't have permission to open issues in their issue tracker |
|
@luan-cestari @jrudolph rightly said "You need to install debug symbols for the JVM". So to hopefully progress it to closure here is the detail on JVM debug symbols on Fedora 24. So to get this working as below on fedora 24 (I didn't run PMA here as it's not relevant to the qn):
You need to install debuginfo java.
which installs the debug symbols into After that "perf script" works for me as above.
Running the following does not install debug symbols on fedora:
|
Thanks for all the information. I added a small note to the README to look into this issue for pointers about how to install debug symbols for the JVM. |
I try to use root@wxf:/home/wxf/perf-tool/perf-tools/bin# ./uprobe -s p:/home/wxf/9dev/build/linux-x86_64-normal-server-slowdebug/jdk/bin/java:AdaptiveSizePolicy::minor_collection_begin
ERROR: missing symbol "minor_collection_begin" in /home/wxf/9dev/build/linux-x86_64-normal-server-slowdebug/jdk/bin/java So I try again root@wxf:/home/wxf/perf-tool/perf-tools/bin# ./uprobe -s p:/home/wxf/9dev/build/linux-x86_64-normal-server-slowdebug/jdk/bin/java:minor_collection_begin
ERROR: missing symbol "minor_collection_begin" in /home/wxf/9dev/build/linux-x86_64-normal-server-slowdebug/jdk/bin/java |
Hi
I'm trying to use your project on a fedora 24 using openjdk 1.8.0.101 . The problem can be seen using perf-java-top and flame graphs as well . The create-java-perf-map seems to work well but it did saw how could get its output with perf to plot with frame. Jstack works as well (but as you mention it would be a terrible poor performance and quality).
I thought it would be something with preserving the framepointer but the jdk version is compatible and I'm using the following JVM options:
-XX:+PreserveFramePointer -XX:+StartAttachListener -XX:+UnlockDiagnosticVMOptions -XX:+DebugNonSafepoints -XX:-OmitStackTraceInFastThrow -XX:+ShowHiddenFrames
Do you have any suggestions about how to solve this problem?
Thanks in advance
Luan
The text was updated successfully, but these errors were encountered: