This is the mail archive of the
systemtap@sourceware.org
mailing list for the systemtap project.
[Bug translator/23074] unhandled DW_OP operation in DWARF expression (DW_OP_GNU_parameter_ref)
- From: "mark at klomp dot org" <sourceware-bugzilla at sourceware dot org>
- To: systemtap at sourceware dot org
- Date: Tue, 17 Apr 2018 16:49:10 +0000
- Subject: [Bug translator/23074] unhandled DW_OP operation in DWARF expression (DW_OP_GNU_parameter_ref)
- Auto-submitted: auto-generated
- References: <bug-23074-6586@http.sourceware.org/bugzilla/>
https://sourceware.org/bugzilla/show_bug.cgi?id=23074
Mark Wielaard <mark at klomp dot org> changed:
What |Removed |Added
----------------------------------------------------------------------------
CC| |mark at klomp dot org
Summary|unhandled DW_OP operation |unhandled DW_OP operation
|in DWARF expression |in DWARF expression
| |(DW_OP_GNU_parameter_ref)
--- Comment #1 from Mark Wielaard <mark at klomp dot org> ---
> semantic error: unhandled DW_OP operation in DWARF expression [0] at 0 (250: 121165, 0):
That (xxx: yyy, zzz) is the DW_OP atom number the first (and possibly) second
argument.
250 = 0xFA, which is DW_OP_GNU_parameter_ref (the first argument is a DIE
offset).
That is indeed not handled in loc2stap.c.
I'll at least make the error message more readable.
DW_OP_GNU_parameter_ref is a but like DW_OP_GNU_entry_value, which we also
currently don't handle. The operand is an unsigned CU relative DIE offset
pointing to a DW_TAG_formal_parameter (you can get it by calling
dwarf_getlocation_die). The value that parameter had at the call site of the
current function will be put on the DWARF stack.
One way to retrieve the value would be by finding the
DW_TAG_GNU_call_site_parameter which has as DW_AT_abstract_origin the same
formal parameter DIE. This DIE might have a DW_AT_GNU_call_site_value or
DW_AT_GNU_call_site_data_value which is a DWARF expression describing the value
or the location of the value. (DWARF5 uses slightly different DIE tags and
attributes.)
--
You are receiving this mail because:
You are the assignee for the bug.