This is the mail archive of the
binutils@sourceware.org
mailing list for the binutils project.
Ping [patch] readelf: decode DW_LNE_HP_source_file_correlation
- From: Tristan Gingold <gingold at adacore dot com>
- To: binutils <binutils at sourceware dot org>
- Date: Tue, 26 Apr 2011 09:44:23 +0200
- Subject: Ping [patch] readelf: decode DW_LNE_HP_source_file_correlation
- References: <8C448896-F6A3-4ED0-B8C9-5F8531DB5730@adacore.com>
Ping for:
On Apr 19, 2011, at 2:10 PM, Tristan Gingold wrote:
> Hi,
>
> HP has defined a few DW_LNE_ opcodes for source file correlation (mostly for backward
> compatible stuff). This patch displays them.
>
> No regression on i386-linux.
> Ok for trunk ?
>
> Tristan.
>
> binutils/
> 2011-04-19 Tristan Gingold <gingold@adacore.com>
>
> * dwarf.c (process_extended_line_op): Handle
> DW_LNE_HP_source_file_correlation.
>
> diff --git a/binutils/dwarf.c b/binutils/dwarf.c
> index 8846e87..cc85525 100644
> --- a/binutils/dwarf.c
> +++ b/binutils/dwarf.c
> @@ -324,6 +324,53 @@ process_extended_line_op (unsigned char *data, int is_stmt)
> case DW_LNE_HP_define_proc:
> printf ("DW_LNE_HP_define_proc\n");
> break;
> + case DW_LNE_HP_source_file_correlation:
> + {
> + unsigned char *edata = data + len - bytes_read - 1;
> +
> + printf ("DW_LNE_HP_source_file_correlation\n");
> +
> + while (data < edata)
> + {
> + unsigned int opc;
> +
> + opc = read_leb128 (data, & bytes_read, 0);
> + data += bytes_read;
> +
> + switch (opc)
> + {
> + case DW_LNE_HP_SFC_formfeed:
> + printf (" DW_LNE_HP_SFC_formfeed\n");
> + break;
> + case DW_LNE_HP_SFC_set_listing_line:
> + printf (" DW_LNE_HP_SFC_set_listing_line (%s)\n",
> + dwarf_vmatoa ("u",
> + read_leb128 (data, & bytes_read, 0)));
> + data += bytes_read;
> + break;
> + case DW_LNE_HP_SFC_associate:
> + printf (" DW_LNE_HP_SFC_associate ");
> + printf (_("(%s"),
> + dwarf_vmatoa ("u",
> + read_leb128 (data, & bytes_read, 0)));
> + data += bytes_read;
> + printf (_(",%s"),
> + dwarf_vmatoa ("u",
> + read_leb128 (data, & bytes_read, 0)));
> + data += bytes_read;
> + printf (_(",%s)\n"),
> + dwarf_vmatoa ("u",
> + read_leb128 (data, & bytes_read, 0)));
> + data += bytes_read;
> + break;
> + default:
> + printf (" UNKNOW DW_LNE_HP_SFC opcode (%u)\n", opc);
> + data = edata;
> + break;
> + }
> + }
> + }
> + break;
>
> default:
> if (op_code >= DW_LNE_lo_user
>