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
Missing method name from flamegraph #44
Comments
@tosheer i have the same problem, The flame graph which i created is too much unknown item in it,i have no idea what going on。 but it won't like this before,i don't know what my workmate did on production cause this problem。 |
@tosheer Looking at the data you sent it seems like the map file is generate correctly, but perf is unable to correctly map some of the address in your data file anyway. I also notice in your flame graph that a large component of the graph is in compilation. This may explain the issue to some extent if the map is generated after the profiled period, in which some of the code is re-compiled, the addresses will not match.
|
I've had some problems of my own so taking a look at this also. kernel: 3.10.0-123.9.3.el7.x86_64 the flamegraph flamegraph-17715.svg shows lots of compilation, but there are no such frames in the perf data file you provided. so I guess the 2 don't come from the same recording? The perf map is being used by perf script and producing what look like reasonable stacks (ie. the frames are not in some random order). so It looks like perf had some kind of an issue as it has recorded a lot of the frames as having dso "3E". it tries to look up the addresses for this "3E" dso and can't resolve them. I took one of these "3E" frame addresses and it does map to an address in the perf map file.
and sure enough for some stacks it is recorded/reported correctly: 7facfbc09f5a Lorg/apache/felix/http/sslfilter/internal/SslFilter;::doFilter+0x81a (/tmp/perf-17715.map) |
Closing for now. |
As of Linux 4.6, capturing kernel call stacks using perf_events from a non- root process requires setting two runtime variables. You can set them using sysctl or as follows: echo 1 > /proc/sys/kernel/perf_event_paranoidecho 0 > /proc/sys/kernel/kptr_restrictI have encountered such a problem;That's how it works; |
I am trying to build flamegraph, flamegraph is getting created successfully, but it is having a lot of methods without name / Generic symbol.
Out put which i get is below.
[aemauthor@local-aem62-test bin]$ ./perf-java-flames 17715
Recording events for 15 seconds (adapt by setting PERF_RECORD_SECONDS)
[ perf record: Woken up 1 times to write data ]
[ perf record: Captured and wrote 0.696 MB /tmp/perf-17715.data (618 samples) ]
Failed to open 3E, continuing without symbols
Flame graph SVG written to PERF_FLAME_OUTPUT='/home/aemauthor/perf-map-agent/bin/flamegraph-17715.svg'.
Perf data, method map and Flamegraph are attached.
Archive.zip
The text was updated successfully, but these errors were encountered: