diff options
author | Tristan Gingold <gingold@adacore.com> | 2011-04-27 12:09:47 +0000 |
---|---|---|
committer | Tristan Gingold <gingold@adacore.com> | 2011-04-27 12:09:47 +0000 |
commit | a9d8a429a1cac1554d3f2ed222abeb9f5eff514e (patch) | |
tree | 53d9f925813f6af0ab78a6542aa66ae60e47755b /binutils | |
parent | 4957ca3976724bded8be90edd1d613025305902c (diff) | |
download | binutils-redhat-a9d8a429a1cac1554d3f2ed222abeb9f5eff514e.tar.gz |
2011-04-27 Tristan Gingold <gingold@adacore.com>
* dwarf.c (process_extended_line_op): Handle
DW_LNE_HP_source_file_correlation.
Diffstat (limited to 'binutils')
-rw-r--r-- | binutils/ChangeLog | 5 | ||||
-rw-r--r-- | binutils/dwarf.c | 47 |
2 files changed, 52 insertions, 0 deletions
diff --git a/binutils/ChangeLog b/binutils/ChangeLog index 8862fb9232..ddfe2b9856 100644 --- a/binutils/ChangeLog +++ b/binutils/ChangeLog @@ -1,3 +1,8 @@ +2011-04-27 Tristan Gingold <gingold@adacore.com> + + * dwarf.c (process_extended_line_op): Handle + DW_LNE_HP_source_file_correlation. + 2011-04-27 Nick Clifton <nickc@redhat.com> * po/da.po: Updated Danish translation. diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 8846e8750e..cc85525aed 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 |