mirror of
https://sourceware.org/git/binutils-gdb.git
synced 2025-01-30 12:44:10 +08:00
2005-11-19 Randolph Chung <tausq@debian.org>
* dwarf2loc.c (dwarf2_tracepoint_var_ref): Remove extra add for DW_OP_fbreg. Handle DW_OP_breg0 through DW_OP_breg31. Print DWARF opcode for unsupported case.
This commit is contained in:
parent
27b08a0cb4
commit
9c23835799
@ -1,3 +1,9 @@
|
||||
2005-11-19 Randolph Chung <tausq@debian.org>
|
||||
|
||||
* dwarf2loc.c (dwarf2_tracepoint_var_ref): Remove extra add for
|
||||
DW_OP_fbreg. Handle DW_OP_breg0 through DW_OP_breg31. Print
|
||||
DWARF opcode for unsupported case.
|
||||
|
||||
2005-11-19 Randolph Chung <tausq@debian.org>
|
||||
|
||||
* hppa-hpux-tdep.c (hppa_hpux_sigtramp_frame_unwind_cache): Use
|
||||
|
@ -477,13 +477,30 @@ dwarf2_tracepoint_var_ref (struct symbol *symbol, struct agent_expr *ax,
|
||||
ax_const_l (ax, frame_offset);
|
||||
ax_simple (ax, aop_add);
|
||||
|
||||
ax_const_l (ax, frame_offset);
|
||||
value->kind = axs_lvalue_memory;
|
||||
}
|
||||
else if (data[0] >= DW_OP_breg0
|
||||
&& data[0] <= DW_OP_breg31)
|
||||
{
|
||||
unsigned int reg;
|
||||
LONGEST offset;
|
||||
gdb_byte *buf_end;
|
||||
|
||||
reg = data[0] - DW_OP_breg0;
|
||||
buf_end = read_sleb128 (data + 1, data + size, &offset);
|
||||
if (buf_end != data + size)
|
||||
error (_("Unexpected opcode after DW_OP_breg%u for symbol \"%s\"."),
|
||||
reg, SYMBOL_PRINT_NAME (symbol));
|
||||
|
||||
ax_reg (ax, reg);
|
||||
ax_const_l (ax, offset);
|
||||
ax_simple (ax, aop_add);
|
||||
|
||||
value->kind = axs_lvalue_memory;
|
||||
}
|
||||
else
|
||||
error (_("Unsupported DWARF opcode in the location of \"%s\"."),
|
||||
SYMBOL_PRINT_NAME (symbol));
|
||||
error (_("Unsupported DWARF opcode 0x%x in the location of \"%s\"."),
|
||||
data[0], SYMBOL_PRINT_NAME (symbol));
|
||||
}
|
||||
|
||||
/* Return the value of SYMBOL in FRAME using the DWARF-2 expression
|
||||
|
Loading…
Reference in New Issue
Block a user