This is the mail archive of the binutils@sourceware.org mailing list for the binutils project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

Re: [PATCH] DW_OP_GNU_implicit_pointer binutils support, fix up DW_OP_call_ref


>>> 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


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]