Skip to content

Commit 6bd273a

Browse files
committed
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.
1 parent f6c01fc commit 6bd273a

File tree

2 files changed

+10
-3
lines changed

2 files changed

+10
-3
lines changed

gdb/ChangeLog

+5
Original file line numberDiff line numberDiff line change
@@ -1,3 +1,8 @@
1+
2013-11-27 Pedro Alves <palves@redhat.com>
2+
3+
* frame-unwind.c (frame_unwind_got_optimized): Return
4+
an lval_register value instead of a not_lval value.
5+
16
2013-11-27 Andrew Burgess <aburgess@broadcom.com>
27

38
* frame.c: Include "valprint.h".

gdb/frame-unwind.c

+5-3
Original file line numberDiff line numberDiff line change
@@ -161,10 +161,12 @@ default_frame_unwind_stop_reason (struct frame_info *this_frame,
161161
struct value *
162162
frame_unwind_got_optimized (struct frame_info *frame, int regnum)
163163
{
164-
struct gdbarch *gdbarch = frame_unwind_arch (frame);
165-
struct type *reg_type = register_type (gdbarch, regnum);
164+
struct value *val;
166165

167-
return allocate_optimized_out_value (reg_type);
166+
val = value_of_register_lazy (frame, regnum);
167+
set_value_lazy (val, 0);
168+
set_value_optimized_out (val, 1);
169+
return val;
168170
}
169171

170172
/* Return a value which indicates that FRAME copied REGNUM into

0 commit comments

Comments
 (0)