diff options
author | Tristan Gingold <gingold@adacore.com> | 2011-04-27 12:09:48 +0000 |
---|---|---|
committer | Tristan Gingold <gingold@adacore.com> | 2011-04-27 12:09:48 +0000 |
commit | 43294ab7fc33c09cb2c44763c0a79ea0db679408 (patch) | |
tree | 3bb7c6b0f919a542b1e8147c743c06e1d3c51353 /binutils/dwarf.c | |
parent | f6d903988c5983e2882e3448dc1a059ef4c888a4 (diff) | |
download | gdb-43294ab7fc33c09cb2c44763c0a79ea0db679408.zip gdb-43294ab7fc33c09cb2c44763c0a79ea0db679408.tar.gz gdb-43294ab7fc33c09cb2c44763c0a79ea0db679408.tar.bz2 |
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/dwarf.c')
-rw-r--r-- | binutils/dwarf.c | 47 |
1 files changed, 47 insertions, 0 deletions
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 |