Make "set debug frame 1" output print <not saved> instead of <optimized out>.
"set debug frame 1" is printing "<optimized out>" for not saved registers. That's because the unwinders are returning optimized out not_lval values instead of optimized out lval_register values. "<not saved>" is how val_print_optimized_out prints lval_register values. ... - { frame_unwind_register_value (frame=0,regnum=7(rsp),...) -> <optimized out> } + { frame_unwind_register_value (frame=0,regnum=7(rsp),...) -> <not saved> } ... Tested on x86_64 Fedora 17. 2013-11-27 Pedro Alves <palves@redhat.com> * frame-unwind.c (frame_unwind_got_optimized): Return an lval_register value instead of a not_lval value.
This commit is contained in:
parent
f6c01fc515
commit
6bd273ae45
2 changed files with 10 additions and 3 deletions
|
@ -1,3 +1,8 @@
|
|||
2013-11-27 Pedro Alves <palves@redhat.com>
|
||||
|
||||
* frame-unwind.c (frame_unwind_got_optimized): Return
|
||||
an lval_register value instead of a not_lval value.
|
||||
|
||||
2013-11-27 Andrew Burgess <aburgess@broadcom.com>
|
||||
|
||||
* frame.c: Include "valprint.h".
|
||||
|
|
|
@ -161,10 +161,12 @@ default_frame_unwind_stop_reason (struct frame_info *this_frame,
|
|||
struct value *
|
||||
frame_unwind_got_optimized (struct frame_info *frame, int regnum)
|
||||
{
|
||||
struct gdbarch *gdbarch = frame_unwind_arch (frame);
|
||||
struct type *reg_type = register_type (gdbarch, regnum);
|
||||
struct value *val;
|
||||
|
||||
return allocate_optimized_out_value (reg_type);
|
||||
val = value_of_register_lazy (frame, regnum);
|
||||
set_value_lazy (val, 0);
|
||||
set_value_optimized_out (val, 1);
|
||||
return val;
|
||||
}
|
||||
|
||||
/* Return a value which indicates that FRAME copied REGNUM into
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue