From: Jan Kratochvil <jan.kratochvil@redhat.com>
To: binutils@sourceware.org
Cc: Victor Leschuk <vleschuk@accesssoftek.com>
Subject: [PATCH 4/6] DWARF-5: call sites
Date: Wed, 15 Feb 2017 22:58:00 -0000 [thread overview]
Message-ID: <148719950428.19826.1040771574277672894.stgit@host1.jankratochvil.net> (raw)
In-Reply-To: <148719947800.19826.950569475344047705.stgit@host1.jankratochvil.net>
Hi,
this patch updates all call sites related DWARF-5 renames.
Jan
binutils/ChangeLog
2017-02-15 Jan Kratochvil <jan.kratochvil@redhat.com>
* dwarf.c (decode_location_expression): Support DW_OP_implicit_pointer,
DW_OP_const_type, DW_OP_regval_type, DW_OP_deref_type, DW_OP_convert
and DW_OP_reinterpret.
(read_and_display_attr_value): Support DW_AT_call_value,
DW_AT_call_data_value, DW_AT_call_target and
DW_AT_call_target_clobbered.
---
binutils/dwarf.c | 43 ++++++++++++++++++++++++++++++++++++-------
1 file changed, 36 insertions(+), 7 deletions(-)
diff --git a/binutils/dwarf.c b/binutils/dwarf.c
index adb9c09..18c1eee 100644
--- a/binutils/dwarf.c
+++ b/binutils/dwarf.c
@@ -1323,12 +1323,16 @@ decode_location_expression (unsigned char * data,
print_dwarf_vma (addr, pointer_size);
}
break;
+ case DW_OP_implicit_pointer:
case DW_OP_GNU_implicit_pointer:
/* XXX: Strictly speaking for 64-bit DWARF3 files
this ought to be an 8-byte wide computation. */
if (dwarf_version == -1)
{
- printf (_("(DW_OP_GNU_implicit_pointer in frame info)"));
+ printf (_("(%s in frame info)"),
+ (op == DW_OP_implicit_pointer
+ ? "DW_OP_implicit_pointer"
+ : "DW_OP_GNU_implicit_pointer"));
/* No way to tell where the next op is, so just bail. */
return need_frame_base;
}
@@ -1340,7 +1344,9 @@ decode_location_expression (unsigned char * data,
{
SAFE_BYTE_GET_AND_INC (uvalue, data, offset_size, end);
}
- printf ("DW_OP_GNU_implicit_pointer: <0x%s> %s",
+ printf ("%s: <0x%s> %s",
+ (op == DW_OP_implicit_pointer
+ ? "DW_OP_implicit_pointer" : "DW_OP_GNU_implicit_pointer"),
dwarf_vmatoa ("x", uvalue),
dwarf_vmatoa ("d", read_sleb128 (data,
&bytes_read, end)));
@@ -1364,40 +1370,55 @@ decode_location_expression (unsigned char * data,
if (data > end)
data = end;
break;
+ case DW_OP_const_type:
case DW_OP_GNU_const_type:
uvalue = read_uleb128 (data, &bytes_read, end);
data += bytes_read;
- printf ("DW_OP_GNU_const_type: <0x%s> ",
+ printf ("%s: <0x%s> ",
+ (op == DW_OP_const_type ? "DW_OP_const_type"
+ : "DW_OP_GNU_const_type"),
dwarf_vmatoa ("x", cu_offset + uvalue));
SAFE_BYTE_GET_AND_INC (uvalue, data, 1, end);
data = display_block (data, uvalue, end, ' ');
break;
+ case DW_OP_regval_type:
case DW_OP_GNU_regval_type:
uvalue = read_uleb128 (data, &bytes_read, end);
data += bytes_read;
- printf ("DW_OP_GNU_regval_type: %s (%s)",
+ printf ("%s: %s (%s)",
+ (op == DW_OP_regval_type ? "DW_OP_regval_type"
+ : "DW_OP_GNU_regval_type"),
dwarf_vmatoa ("u", uvalue), regname (uvalue, 1));
uvalue = read_uleb128 (data, &bytes_read, end);
data += bytes_read;
printf (" <0x%s>", dwarf_vmatoa ("x", cu_offset + uvalue));
break;
+ case DW_OP_deref_type:
case DW_OP_GNU_deref_type:
SAFE_BYTE_GET_AND_INC (uvalue, data, 1, end);
- printf ("DW_OP_GNU_deref_type: %ld", (long) uvalue);
+ printf ("%s: %ld",
+ (op == DW_OP_deref_type ? "DW_OP_deref_type"
+ : "DW_OP_GNU_deref_type"),
+ (long) uvalue);
uvalue = read_uleb128 (data, &bytes_read, end);
data += bytes_read;
printf (" <0x%s>", dwarf_vmatoa ("x", cu_offset + uvalue));
break;
+ case DW_OP_convert:
case DW_OP_GNU_convert:
uvalue = read_uleb128 (data, &bytes_read, end);
data += bytes_read;
- printf ("DW_OP_GNU_convert <0x%s>",
+ printf ("%s <0x%s>",
+ (op == DW_OP_convert ? "DW_OP_convert" : "DW_OP_GNU_convert"),
dwarf_vmatoa ("x", uvalue ? cu_offset + uvalue : 0));
break;
+ case DW_OP_reinterpret:
case DW_OP_GNU_reinterpret:
uvalue = read_uleb128 (data, &bytes_read, end);
data += bytes_read;
- printf ("DW_OP_GNU_reinterpret <0x%s>",
+ printf ("%s <0x%s>",
+ (op == DW_OP_reinterpret ? "DW_OP_reinterpret"
+ : "DW_OP_GNU_reinterpret"),
dwarf_vmatoa ("x", uvalue ? cu_offset + uvalue : 0));
break;
case DW_OP_GNU_parameter_ref:
@@ -1885,9 +1906,13 @@ read_and_display_attr_value (unsigned long attribute,
case DW_AT_segment:
case DW_AT_static_link:
case DW_AT_use_location:
+ case DW_AT_call_value:
case DW_AT_GNU_call_site_value:
+ case DW_AT_call_data_value:
case DW_AT_GNU_call_site_data_value:
+ case DW_AT_call_target:
case DW_AT_GNU_call_site_target:
+ case DW_AT_call_target_clobbered:
case DW_AT_GNU_call_site_target_clobbered:
if ((dwarf_version < 4
&& (form == DW_FORM_data4 || form == DW_FORM_data8))
@@ -2161,9 +2186,13 @@ read_and_display_attr_value (unsigned long attribute,
case DW_AT_segment:
case DW_AT_static_link:
case DW_AT_use_location:
+ case DW_AT_call_value:
case DW_AT_GNU_call_site_value:
+ case DW_AT_call_data_value:
case DW_AT_GNU_call_site_data_value:
+ case DW_AT_call_target:
case DW_AT_GNU_call_site_target:
+ case DW_AT_call_target_clobbered:
case DW_AT_GNU_call_site_target_clobbered:
if ((dwarf_version < 4
&& (form == DW_FORM_data4 || form == DW_FORM_data8))
next prev parent reply other threads:[~2017-02-15 22:58 UTC|newest]
Thread overview: 32+ messages / expand[flat|nested] mbox.gz Atom feed top
2017-02-15 22:58 [PATCH 1/6] DWARF attrs: add delimiter Jan Kratochvil
2017-02-15 22:58 ` [PATCH 6/6] DWARF-5: DW_FORM_data16 Jan Kratochvil
2017-02-22 11:51 ` Nick Clifton
2017-02-23 22:13 ` [commit] " Jan Kratochvil
2017-02-15 22:58 ` [PATCH 5/6] DWARF-5: Macros Jan Kratochvil
2017-02-22 11:50 ` Nick Clifton
2017-02-23 22:13 ` [commit] " Jan Kratochvil
2017-02-15 22:58 ` [PATCH 3/6] DWARF-5 basic functionality Jan Kratochvil
2017-02-22 11:36 ` Nick Clifton
2017-02-22 18:42 ` Jan Kratochvil
2017-02-22 11:47 ` Nick Clifton
2017-02-22 19:13 ` [patch] dwarf.c: Use more dwarf_vma [Re: [PATCH 3/6] DWARF-5 basic functionality] Jan Kratochvil
2017-02-23 16:34 ` Nick Clifton
2017-02-23 16:35 ` Nick Clifton
2017-02-23 20:38 ` [commit] " Jan Kratochvil
2017-02-23 22:12 ` [commit] [PATCH 3/6] DWARF-5 basic functionality Jan Kratochvil
2017-02-27 21:58 ` Maciej W. Rozycki
2017-02-27 22:24 ` [obv] DWARF-5: Fix compilation with GCC 4.4.7 [Re: [commit] [PATCH 3/6] DWARF-5 basic functionality] Jan Kratochvil
2017-02-15 22:58 ` Jan Kratochvil [this message]
2017-02-22 11:49 ` [PATCH 4/6] DWARF-5: call sites Nick Clifton
2017-02-23 22:12 ` [commit] " Jan Kratochvil
2017-02-15 22:58 ` [PATCH 2/6] Display user op byte Jan Kratochvil
2017-02-22 11:30 ` Nick Clifton
2017-02-22 19:24 ` [commit] " Jan Kratochvil
2017-02-16 10:59 ` [PATCH 1/6] DWARF attrs: add delimiter Nick Clifton
2017-02-16 20:13 ` Jan Kratochvil
2017-02-17 8:37 ` Nick Clifton
2017-02-18 19:47 ` [patch] DWARF-5: testcase [Re: [PATCH 1/6] DWARF attrs: add delimiter] Jan Kratochvil
2017-02-21 9:44 ` Nick Clifton
2017-02-23 22:17 ` [commit] [patch] DWARF-5: testcase Jan Kratochvil
2017-02-22 11:48 ` [PATCH 1/6] DWARF attrs: add delimiter Nick Clifton
2017-02-23 22:08 ` [commit] " Jan Kratochvil
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=148719950428.19826.1040771574277672894.stgit@host1.jankratochvil.net \
--to=jan.kratochvil@redhat.com \
--cc=binutils@sourceware.org \
--cc=vleschuk@accesssoftek.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox;
as well as URLs for read-only IMAP folder(s) and NNTP newsgroup(s).