summaryrefslogtreecommitdiffstats
path: root/loc2c.h
diff options
context:
space:
mode:
authorMark Wielaard <mjw@redhat.com>2009-09-17 15:06:57 +0200
committerMark Wielaard <mjw@redhat.com>2009-09-17 17:01:38 +0200
commit24c7957b4dbddc8545d0e0c734377746a5ae6e60 (patch)
treee276329ae8a27bc46dda20c2ef665766cc97baa2 /loc2c.h
parent6287a9e628bcbe6192da8fd9f0ce659a8acc13fc (diff)
downloadsystemtap-steved-24c7957b4dbddc8545d0e0c734377746a5ae6e60.tar.gz
systemtap-steved-24c7957b4dbddc8545d0e0c734377746a5ae6e60.tar.xz
systemtap-steved-24c7957b4dbddc8545d0e0c734377746a5ae6e60.zip
PR10417 Pass around attributes for supporting DW_OP_{implicit,stack}_value.
Preparation for retrieving the Dwarf_Block that holds the value of an DW_OP_implicit_value. We need the Dwarf_Attribute that is associated with the location expression operants. Depends on new elfutils 0.143 functionality. Recognizes, but does not yet handle the new operants DW_OP_{implicit,stack}_value. * loc2c.h (c_translate_location): Take an Dwarf_Attribute. * loc2c.c (c_translate_location): Likewise and pass it on. (location_relative): Likewise. (location_from_address): Likewise. (translate): Likewise and capture Dwarf_Block. * loc2c-test.c (handle_variable): Pass in Dwarf_Attribute. * dwflpp.cxx (translate_location): Likewise. (literal_stmt_for_return): Pass in NULL to indicate no attribute.
Diffstat (limited to 'loc2c.h')
-rw-r--r--loc2c.h5
1 files changed, 4 insertions, 1 deletions
diff --git a/loc2c.h b/loc2c.h
index 8bc59d29..becf2d85 100644
--- a/loc2c.h
+++ b/loc2c.h
@@ -12,7 +12,9 @@ struct location; /* Opaque */
as the starting location, begin from scratch if *INPUT is null.
If DW_OP_fbreg is used, it may have a subfragment computing from
the FB_ATTR location expression. The call_frame might need to be
- calculated by the cfa_ops for the given pc_address.
+ calculated by the cfa_ops for the given pc_address. If known the
+ locattr provides the attribute from which the locexpr array was
+ retrieved.
On errors, call FAIL, which should not return. Any later errors will use
FAIL and FAIL_ARG from the first c_translate_location call.
@@ -32,6 +34,7 @@ struct location *c_translate_location (struct obstack *,
int indent,
Dwarf_Addr bias,
Dwarf_Addr pc_address,
+ Dwarf_Attribute *attr,
const Dwarf_Op *locexpr,
size_t locexprlen,
struct location **input,