* dwarf2loc.c (dwarf2_evaluate_loc_desc): Do not call get_frame_arch
for NULL frame pointers.
This commit is contained in:
parent
b302c308cd
commit
77a732d97f
|
@ -1,3 +1,8 @@
|
||||||
|
2009-01-13 Ulrich Weigand <uweigand@de.ibm.com>
|
||||||
|
|
||||||
|
* dwarf2loc.c (dwarf2_evaluate_loc_desc): Do not call get_frame_arch
|
||||||
|
for NULL frame pointers.
|
||||||
|
|
||||||
2009-01-13 Mark Kettenis <kettenis@gnu.org>
|
2009-01-13 Mark Kettenis <kettenis@gnu.org>
|
||||||
|
|
||||||
* utils.c (host_address_to_string): Reimplement in a way that
|
* utils.c (host_address_to_string): Reimplement in a way that
|
||||||
|
|
|
@ -199,7 +199,6 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
|
||||||
gdb_byte *data, unsigned short size,
|
gdb_byte *data, unsigned short size,
|
||||||
struct dwarf2_per_cu_data *per_cu)
|
struct dwarf2_per_cu_data *per_cu)
|
||||||
{
|
{
|
||||||
struct gdbarch *arch = get_frame_arch (frame);
|
|
||||||
struct value *retval;
|
struct value *retval;
|
||||||
struct dwarf_expr_baton baton;
|
struct dwarf_expr_baton baton;
|
||||||
struct dwarf_expr_context *ctx;
|
struct dwarf_expr_context *ctx;
|
||||||
|
@ -238,9 +237,9 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
|
||||||
struct dwarf_expr_piece *p = &ctx->pieces[i];
|
struct dwarf_expr_piece *p = &ctx->pieces[i];
|
||||||
if (p->in_reg)
|
if (p->in_reg)
|
||||||
{
|
{
|
||||||
|
struct gdbarch *arch = get_frame_arch (frame);
|
||||||
bfd_byte regval[MAX_REGISTER_SIZE];
|
bfd_byte regval[MAX_REGISTER_SIZE];
|
||||||
int gdb_regnum = gdbarch_dwarf2_reg_to_regnum
|
int gdb_regnum = gdbarch_dwarf2_reg_to_regnum (arch, p->value);
|
||||||
(arch, p->value);
|
|
||||||
get_frame_register (frame, gdb_regnum, regval);
|
get_frame_register (frame, gdb_regnum, regval);
|
||||||
memcpy (contents + offset, regval, p->size);
|
memcpy (contents + offset, regval, p->size);
|
||||||
}
|
}
|
||||||
|
@ -253,9 +252,9 @@ dwarf2_evaluate_loc_desc (struct symbol *var, struct frame_info *frame,
|
||||||
}
|
}
|
||||||
else if (ctx->in_reg)
|
else if (ctx->in_reg)
|
||||||
{
|
{
|
||||||
|
struct gdbarch *arch = get_frame_arch (frame);
|
||||||
CORE_ADDR dwarf_regnum = dwarf_expr_fetch (ctx, 0);
|
CORE_ADDR dwarf_regnum = dwarf_expr_fetch (ctx, 0);
|
||||||
int gdb_regnum = gdbarch_dwarf2_reg_to_regnum
|
int gdb_regnum = gdbarch_dwarf2_reg_to_regnum (arch, dwarf_regnum);
|
||||||
(arch, dwarf_regnum);
|
|
||||||
retval = value_from_register (SYMBOL_TYPE (var), gdb_regnum, frame);
|
retval = value_from_register (SYMBOL_TYPE (var), gdb_regnum, frame);
|
||||||
}
|
}
|
||||||
else
|
else
|
||||||
|
|
Loading…
Reference in New Issue