diff options
author | Daniel Jacobowitz <drow@false.org> | 2003-07-28 13:02:41 +0000 |
---|---|---|
committer | Daniel Jacobowitz <drow@false.org> | 2003-07-28 13:02:41 +0000 |
commit | e99f3b9ea3657624ddd37957e81f000e6e250f20 (patch) | |
tree | d249517859fa02a413f48ff18cb2805cceac7471 | |
parent | a1beba6eb43830a8fbcb3fe78ff8a4580cf8977f (diff) | |
download | gdb-e99f3b9ea3657624ddd37957e81f000e6e250f20.zip gdb-e99f3b9ea3657624ddd37957e81f000e6e250f20.tar.gz gdb-e99f3b9ea3657624ddd37957e81f000e6e250f20.tar.bz2 |
* thread.c (info_threads_command): Use get_selected_frame ().
Check that there is at least one non-sentinel frame.
-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 { |