[PATCH 1/2] Make "set debug frame 1" use the standard print routine for optimized out values.

Pedro Alves
2013-11-27T17:52:52Z

From: Andrew Burgess <aburgess@broadcom.com>

...
- { frame_unwind_register_value (frame=0,regnum=7(rsp),...) -> optimized out }
+ { frame_unwind_register_value (frame=0,regnum=7(rsp),...) -> <optimized out> }
...

Tested on x86_64 Fedora 17.

2013-11-27 Andrew Burgess <aburgess@broadcom.com>

* frame.c: Include "valprint.h".
(frame_unwind_register_value): Use value_optimized_out.
* value.c (value_fetch_lazy): Likewise.
---
gdb/frame.c | 6 +++++-
gdb/value.c | 5 ++++-
2 files changed, 9 insertions(+), 2 deletions(-)

diff --git a/gdb/frame.c b/gdb/frame.c
index f77ce75..4e6e06c 100644
--- a/gdb/frame.c
+++ b/gdb/frame.c
@@ -44,6 +44,7 @@
#include "inline-frame.h"
#include "tracepoint.h"
#include "hashtab.h"
+#include "valprint.h"

static struct frame_info *get_prev_frame_1 (struct frame_info *this_frame);
static struct frame_info *get_prev_frame_raw (struct frame_info *this_frame);
@@ -1047,7 +1048,10 @@ frame_unwind_register_value (struct frame_info *frame, int regnum)
{
fprintf_unfiltered (gdb_stdlog, "->");
if (value_optimized_out (value))
- fprintf_unfiltered (gdb_stdlog, " optimized out");
+ {
+ fprintf_unfiltered (gdb_stdlog, " ");
+ val_print_optimized_out (value, gdb_stdlog);
+ }
else
{
if (VALUE_LVAL (value) == lval_register)
diff --git a/gdb/value.c b/gdb/value.c
index 8052f52..a64e7e1 100644
--- a/gdb/value.c
+++ b/gdb/value.c
@@ -3572,7 +3572,10 @@ value_fetch_lazy (struct value *val)

fprintf_unfiltered (gdb_stdlog, "->");
if (value_optimized_out (new_val))
- fprintf_unfiltered (gdb_stdlog, " optimized out");
+ {
+ fprintf_unfiltered (gdb_stdlog, " ");
+ val_print_optimized_out (new_val, gdb_stdlog);
+ }
else
{
int i;
--
1.7.11.7