This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug translator/1133] support .callees probe pattern extension
- From: "jlebon at redhat dot com" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Fri, 24 Jan 2014 19:10:45 +0000
- Subject: [Bug translator/1133] support .callees probe pattern extension
- Auto-submitted: auto-generated
- References: <bug-1133-6586 at http dot sourceware dot org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=1133
Jonathan Lebon <jlebon at redhat dot com> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |jlebon at redhat dot com
--- Comment #4 from Jonathan Lebon <jlebon at redhat dot com> ---
Unfortunately, it seems like the new DWARF extensions added by GCC don't allow
us (at least for now) to support a .callsites probe because there is no
attribute from which we can retrieve the address of the call site. Although the
DWARF issue[1] mentions a DW_TAG_call_site attribute for it
(DW_AT_call_site_pc), this hasn't been implemented in GCC[2]. If/when it is
implemented, then we could add a syntax along those lines.
GCC does set the DW_AT_low_pc attribute of DW_TAG_call_site, but it seems like
it points to the instruction after the call site (at first I thought it was the
return addr, but it points to the next addr even when it's a tail call).
What the new DW_TAG_call_site DIE does give us however is a way of listing
callees of a DW_TAG_subprogram. So, we could use them to support .callees("")
by retrieving the address from the DIEs of all target functions.
Note however that call site DIEs are not guaranteed to be emitted for all call
sites (DW_TAG_subprogram attributes such as DW_AT_all_call_sites could be
examined to determine if they're all there, if it matters to us). Also note
that call site DIEs are not emitted when optimization is turned off.
BTW, for those looking for more details in the reasoning behind the addition of
DW_TAG_call_site, see the excellent paper[3].
[1] DWARF issue for DW_TAG_call_site
http://www.dwarfstd.org/ShowIssue.php?issue=100909.2
[2] GCC patch adding support for DW_TAG_call_site and DW_OP_entry_value
http://gcc.gnu.org/ml/gcc-patches/2011-03/msg00814.html
[3] Improving debug info for optimized away parameters
http://gcc.gnu.org/wiki/summit2010?action=AttachFile&do=get&target=jelinek.pdf
[4] DWARF issue for DW_OP_entry_value
http://www.dwarfstd.org/ShowIssue.php?issue=100909.1
--
You are receiving this mail because:
You are the assignee for the bug.