This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Re: [PATCH] DW_OP_GNU_implicit_pointer binutils support, fix up DW_OP_call_ref
- From: "Jan Beulich" <JBeulich at novell dot com>
- To: "Jakub Jelinek" <jakub at redhat dot com>
- Cc: "Roland McGrath" <roland at redhat dot com>,<binutils at sourceware dot org>
- Date: Thu, 09 Sep 2010 12:43:53 +0100
- Subject: Re: [PATCH] DW_OP_GNU_implicit_pointer binutils support, fix up DW_OP_call_ref
- References: <20100909100627.GC2652@sunsite.ms.mff.cuni.cz>
>>> On 09.09.10 at 12:06, Jakub Jelinek <jakub@redhat.com> wrote:
> @@ -1083,6 +1101,30 @@ decode_location_expression (unsigned cha
> print_dwarf_vma (addr, pointer_size);
> }
> break;
> + 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)"));
> + /* No way to tell where the next op is, so just bail. */
> + return need_frame_base;
> + }
> + if (dwarf_version == 2)
> + {
> + printf ("DW_OP_GNU_implicit_pointer: <0x%lx> %ld",
> + (long) byte_get (data, pointer_size),
> + read_leb128 (data + pointer_size, &bytes_read, 1));
> + data += pointer_size + bytes_read;
Is this one wrongly adding bytes_read, ...
> + }
> + else
> + {
> + printf ("DW_OP_GNU_implicit_pointer: <0x%lx> %ld",
> + (long) byte_get (data, offset_size),
> + read_leb128 (data + offset_size, &bytes_read, 1));
> + data += offset_size;
... or is the respective addition missing here?
> + }
> + break;
>
> /* HP extensions. */
> case DW_OP_HP_is_value:
Jan