This is the mail archive of the systemtap@sourceware.org mailing list for the systemtap project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[Bug tapsets/10573] New: Identical inline instances may be probed from multiple CUs


In C++, identical functions included in multiple CUs will get merged at link
time into a single instance.  Thus the debuginfo will reference that location
multiple times, but we only want to probe it once.  Commit 857bdfd already deals
with this for normal function instances, but the same problem exists for inline
instances within those functions.

$ stap -l 'process("/usr/bin/stap").function("_M_rep").inline' -vv 2>&1 \
  | grep -o pc=.* | sort | uniq -c | sort | tail -n5
      7 pc=0xc0216
      8 pc=0x21e19
      8 pc=0x21e1c
      9 pc=0x4b726
      9 pc=0x4b7c6

The same entrypc-dupe check isn't quite enough though, because it's quite
possible for multiple distinct inlines to share the same entrypc.  For example,
if inline foo first calls inline bar, then they could flatten out to have the
same starting point.  I think it will need to be a tuple of (pc, name, file,
line) that is checked for dupes.

-- 
           Summary: Identical inline instances may be probed from multiple
                    CUs
           Product: systemtap
           Version: unspecified
            Status: NEW
          Severity: normal
          Priority: P2
         Component: tapsets
        AssignedTo: systemtap at sources dot redhat dot com
        ReportedBy: jistone at redhat dot com


http://sourceware.org/bugzilla/show_bug.cgi?id=10573

------- You are receiving this mail because: -------
You are the assignee for the bug, or are watching the assignee.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]