]> sourceware.org Git - systemtap.git/commit
dwflpp: cache CU entry PCs for pr15123_retry_addr
authorJosh Stone <jistone@redhat.com>
Fri, 26 Aug 2016 20:57:08 +0000 (13:57 -0700)
committerJosh Stone <jistone@redhat.com>
Fri, 26 Aug 2016 20:57:08 +0000 (13:57 -0700)
commit7fb6e0ead49113e782e1b640140c70cec112746e
tree1dc657b43ba44138f9f5671823b403f7e507e238
parentc3d8c09c03abd4b212a24b94601a7d5a2d9b74a1
dwflpp: cache CU entry PCs for pr15123_retry_addr

Previously it was calling getscopes(pc) to see if we're at the start of
the outermost function, which may be a preamble for -mfentry.  But the
scopes are inside-out -- [0] is the innermost -- so inlines were
comparing against their own entry pc, then inappropriately applying the
mfentry workaround.  It also assumes we're already focussed on the CU,
which may not be the case for .callee probes that expand across CUs.
And besides all that, dwarf_getscopes is an expensive traversal.

Instead, we can just keep a cached set of known entry PCs, built from
our existing cache of concrete functions, and check if possible mfentry
PCs are in that set.
dwflpp.cxx
dwflpp.h
This page took 0.026721 seconds and 5 git commands to generate.