aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
-rw-r--r--gdb/ChangeLog5
-rw-r--r--gdb/stack.c15
2 files changed, 20 insertions, 0 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog
index 388e5d6..7fb0510 100644
--- a/gdb/ChangeLog
+++ b/gdb/ChangeLog
@@ -1,5 +1,10 @@
2011-03-18 Pedro Alves <pedro@codesourcery.com>
+ * stack.c (print_frame_local_vars, print_frame_arg_vars): Handle
+ unavailable PC.
+
+2011-03-18 Pedro Alves <pedro@codesourcery.com>
+
* tracepoint.c (set_traceframe_context): Handle unavailable PC
gracefully.
diff --git a/gdb/stack.c b/gdb/stack.c
index dba77d4..0888b69 100644
--- a/gdb/stack.c
+++ b/gdb/stack.c
@@ -1629,6 +1629,14 @@ print_frame_local_vars (struct frame_info *frame, int num_tabs,
{
struct print_variable_and_value_data cb_data;
struct block *block;
+ CORE_ADDR pc;
+
+ if (!get_frame_pc_if_available (frame, &pc))
+ {
+ fprintf_filtered (stream,
+ _("PC unavailable, cannot determine locals.\n"));
+ return;
+ }
block = get_frame_block (frame, 0);
if (block == 0)
@@ -1781,6 +1789,13 @@ print_frame_arg_vars (struct frame_info *frame, struct ui_file *stream)
{
struct print_variable_and_value_data cb_data;
struct symbol *func;
+ CORE_ADDR pc;
+
+ if (!get_frame_pc_if_available (frame, &pc))
+ {
+ fprintf_filtered (stream, _("PC unavailable, cannot determine args.\n"));
+ return;
+ }
func = get_frame_function (frame);
if (func == NULL)