diff options
author | Jakub Jelinek <jakub@redhat.com> | 2011-06-22 15:03:19 +0000 |
---|---|---|
committer | Jakub Jelinek <jakub@redhat.com> | 2011-06-22 15:03:19 +0000 |
commit | f8b999f94554f44229f48a6c93fc14e715871091 (patch) | |
tree | e2aa65ff240d99dc69a889386b148ed4d0b477cf /binutils/dwarf.c | |
parent | c38c4bc5b298545effe1f4afb31d53d66153f189 (diff) | |
download | gdb-f8b999f94554f44229f48a6c93fc14e715871091.zip gdb-f8b999f94554f44229f48a6c93fc14e715871091.tar.gz gdb-f8b999f94554f44229f48a6c93fc14e715871091.tar.bz2 |
* dwarf2.h (enum dwarf_location_atom): Add DW_OP_GNU_parameter_ref.
* dwarf.c (decode_location_expression): For DW_OP_GNU_convert and
DW_OP_GNU_reinterpret, if uvalue is 0, don't add cu_offset.
Handle DW_OP_GNU_parameter_ref.
Diffstat (limited to 'binutils/dwarf.c')
-rw-r--r-- | binutils/dwarf.c | 9 |
1 files changed, 7 insertions, 2 deletions
diff --git a/binutils/dwarf.c b/binutils/dwarf.c index 46c454a..f5a8d7b 100644 --- a/binutils/dwarf.c +++ b/binutils/dwarf.c @@ -1179,13 +1179,18 @@ decode_location_expression (unsigned char * data, uvalue = read_leb128 (data, &bytes_read, 0); data += bytes_read; printf ("DW_OP_GNU_convert <0x%s>", - dwarf_vmatoa ("x", cu_offset + uvalue)); + dwarf_vmatoa ("x", uvalue ? cu_offset + uvalue : 0)); break; case DW_OP_GNU_reinterpret: uvalue = read_leb128 (data, &bytes_read, 0); data += bytes_read; printf ("DW_OP_GNU_reinterpret <0x%s>", - dwarf_vmatoa ("x", cu_offset + uvalue)); + dwarf_vmatoa ("x", uvalue ? cu_offset + uvalue : 0)); + break; + case DW_OP_GNU_parameter_ref: + printf ("DW_OP_GNU_parameter_ref: <0x%s>", + dwarf_vmatoa ("x", cu_offset + byte_get (data, 4))); + data += 4; break; /* HP extensions. */ |