From mboxrd@z Thu Jan 1 00:00:00 1970 Return-Path: Received: (qmail 36858 invoked by alias); 17 Apr 2018 16:49:25 -0000 Mailing-List: contact systemtap-help@sourceware.org; run by ezmlm Precedence: bulk List-Id: List-Subscribe: List-Post: List-Help: , Sender: systemtap-owner@sourceware.org Received: (qmail 34732 invoked by uid 48); 17 Apr 2018 16:49:10 -0000 From: "mark at klomp dot org" To: systemtap@sourceware.org Subject: [Bug translator/23074] unhandled DW_OP operation in DWARF expression (DW_OP_GNU_parameter_ref) Date: Tue, 17 Apr 2018 16:49:00 -0000 X-Bugzilla-Reason: AssignedTo X-Bugzilla-Type: changed X-Bugzilla-Watch-Reason: None X-Bugzilla-Product: systemtap X-Bugzilla-Component: translator X-Bugzilla-Version: unspecified X-Bugzilla-Keywords: X-Bugzilla-Severity: normal X-Bugzilla-Who: mark at klomp dot org X-Bugzilla-Status: NEW X-Bugzilla-Resolution: X-Bugzilla-Priority: P2 X-Bugzilla-Assigned-To: systemtap at sourceware dot org X-Bugzilla-Target-Milestone: --- X-Bugzilla-Flags: X-Bugzilla-Changed-Fields: cc short_desc Message-ID: In-Reply-To: References: Content-Type: text/plain; charset="UTF-8" Content-Transfer-Encoding: quoted-printable X-Bugzilla-URL: http://sourceware.org/bugzilla/ Auto-Submitted: auto-generated MIME-Version: 1.0 X-SW-Source: 2018-q2/txt/msg00011.txt.bz2 https://sourceware.org/bugzilla/show_bug.cgi?id=3D23074 Mark Wielaard 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 --- > semantic error: unhandled DW_OP operation in DWARF expression [0] at 0 (2= 50: 121165, 0): That (xxx: yyy, zzz) is the DW_OP atom number the first (and possibly) seco= nd argument. 250 =3D 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 v= alue or the location of the value. (DWARF5 uses slightly different DIE tags and attributes.) --=20 You are receiving this mail because: You are the assignee for the bug.