diff options
author | Stan Shebs <shebs@apple.com> | 2010-04-16 01:12:06 +0000 |
---|---|---|
committer | Stan Shebs <shebs@apple.com> | 2010-04-16 01:12:06 +0000 |
commit | 06da7f140e0561b82135ae12a8a6394102e72401 (patch) | |
tree | fe83c020210c81b6a656f082b7dd037e4e0a9a0d /gdb/frame.c | |
parent | b2492cd13f871898c026b45f1424e4e06b526ff6 (diff) | |
download | gdb-06da7f140e0561b82135ae12a8a6394102e72401.tar.gz |
2010-04-15 Stan Shebs <stan@codesourcery.com>
* frame.c: Include tracepoint.h.
(get_current_frame): Allow a trace frame to be an alternate source
of stack frame data.
* tracepoint.c (tfind_1): Don't try to get current stack frame if
it won't succeed.
Diffstat (limited to 'gdb/frame.c')
-rw-r--r-- | gdb/frame.c | 17 |
1 files changed, 11 insertions, 6 deletions
diff --git a/gdb/frame.c b/gdb/frame.c index aaa70daf592..0b0c5b44484 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -43,6 +43,7 @@ #include "gdbthread.h" #include "block.h" #include "inline-frame.h" +#include "tracepoint.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); @@ -1144,12 +1145,16 @@ get_current_frame (void) error (_("No stack.")); if (!target_has_memory) error (_("No memory.")); - if (ptid_equal (inferior_ptid, null_ptid)) - error (_("No selected thread.")); - if (is_exited (inferior_ptid)) - error (_("Invalid selected thread.")); - if (is_executing (inferior_ptid)) - error (_("Target is executing.")); + /* Traceframes are effectively a substitute for the live inferior. */ + if (get_traceframe_number () < 0) + { + if (ptid_equal (inferior_ptid, null_ptid)) + error (_("No selected thread.")); + if (is_exited (inferior_ptid)) + error (_("Invalid selected thread.")); + if (is_executing (inferior_ptid)) + error (_("Target is executing.")); + } if (current_frame == NULL) { |