--- gdb/frame.c | 6 ++++++ gdb/tui/tui-hooks.c | 11 ++++++++++- 2 files changed, 16 insertions(+), 1 deletion(-) Index: src/gdb/frame.c =================================================================== --- src.orig/gdb/frame.c 2007-03-20 20:00:04.000000000 +0000 +++ src/gdb/frame.c 2007-03-22 02:33:54.000000000 +0000 @@ -946,6 +946,12 @@ get_current_frame (void) static struct frame_info *selected_frame; +int +selected_frame_is_valid (void) +{ + return (selected_frame != NULL); +} + /* Return the selected frame. Always non-NULL (unless there isn't an inferior sufficient for creating a frame) in which case an error is thrown. */ Index: src/gdb/tui/tui-hooks.c =================================================================== --- src.orig/gdb/tui/tui-hooks.c 2007-03-21 22:48:08.000000000 +0000 +++ src/gdb/tui/tui-hooks.c 2007-03-22 02:46:56.000000000 +0000 @@ -127,12 +127,18 @@ tui_query_hook (const char * msg, va_lis /* Prevent recursion of deprecated_registers_changed_hook(). */ static int tui_refreshing_registers = 0; +/* Move to frame.h if patch is approved. */ +extern int selected_frame_is_valid (void); + static void tui_registers_changed_hook (void) { struct frame_info *fi; - fi = get_selected_frame (NULL); + if (!selected_frame_is_valid ()) + return; + + fi = deprecated_safe_get_selected_frame (); if (tui_refreshing_registers == 0) { tui_refreshing_registers = 1; @@ -230,6 +236,9 @@ tui_selected_frame_level_changed_hook (i { struct frame_info *fi; + if (!selected_frame_is_valid ()) + return; + fi = deprecated_safe_get_selected_frame (); /* Ensure that symbols for this frame are read in. Also, determine the source language of this frame, and switch to it if desired. */