diff options
-rw-r--r-- | gdb/ChangeLog | 5 | ||||
-rw-r--r-- | gdb/thread.c | 19 |
2 files changed, 13 insertions, 11 deletions
diff --git a/gdb/ChangeLog b/gdb/ChangeLog index 8636c3f..611ff9d 100644 --- a/gdb/ChangeLog +++ b/gdb/ChangeLog @@ -1,3 +1,8 @@ +2003-07-28 Daniel Jacobowitz <drow@mvista.com> + + * thread.c (info_threads_command): Use get_selected_frame (). + Check that there is at least one non-sentinel frame. + 2003-07-27 Stephane Carrez <stcarrez@nerim.fr> * m68hc11-tdep.c (struct frame_extra_info): Remove. diff --git a/gdb/thread.c b/gdb/thread.c index 315f33b..f8cc18d 100644 --- a/gdb/thread.c +++ b/gdb/thread.c @@ -417,14 +417,14 @@ info_threads_command (char *arg, int from_tty) struct thread_info *tp; ptid_t current_ptid; struct frame_info *cur_frame; - int saved_frame_level = frame_relative_level (deprecated_selected_frame); + int saved_frame_level = frame_relative_level (get_selected_frame ()); int counter; char *extra_info; - /* Avoid coredumps which would happen if we tried to access a NULL - deprecated_selected_frame. */ - if (!target_has_stack) - error ("No stack."); + /* Check that there really is a frame. This happens when a simulator + is connected but not loaded or running, for instance. */ + if (legacy_frame_p (current_gdbarch) && saved_frame_level < 0) + error ("No frame."); prune_threads (); target_find_new_threads (); @@ -448,10 +448,7 @@ info_threads_command (char *arg, int from_tty) puts_filtered (" "); switch_to_thread (tp->ptid); - if (deprecated_selected_frame) - print_stack_frame (deprecated_selected_frame, -1, 0); - else - printf_filtered ("[No stack.]\n"); + print_stack_frame (get_selected_frame (), -1, 0); } switch_to_thread (current_ptid); @@ -463,12 +460,12 @@ info_threads_command (char *arg, int from_tty) * of the stack (leaf frame). */ counter = saved_frame_level; - cur_frame = find_relative_frame (deprecated_selected_frame, &counter); + cur_frame = find_relative_frame (get_selected_frame (), &counter); if (counter != 0) { /* Ooops, can't restore, tell user where we are. */ warning ("Couldn't restore frame in current thread, at frame 0"); - print_stack_frame (deprecated_selected_frame, -1, 0); + print_stack_frame (get_selected_frame (), -1, 0); } else { |