diff options
author | Andrew Cagney <cagney@redhat.com> | 2004-02-08 18:53:15 +0000 |
---|---|---|
committer | Andrew Cagney <cagney@redhat.com> | 2004-02-08 18:53:15 +0000 |
commit | 31b75dbf5410d081e14d67edb8cf95bd8bb679be (patch) | |
tree | 0b2564b255f134e9db54de49b500e3c05822ac44 /gdb/frame.c | |
parent | 3483b318bc4e977107dddc2e881455af8161373a (diff) | |
download | gdb-31b75dbf5410d081e14d67edb8cf95bd8bb679be.zip gdb-31b75dbf5410d081e14d67edb8cf95bd8bb679be.tar.gz gdb-31b75dbf5410d081e14d67edb8cf95bd8bb679be.tar.bz2 |
2004-02-08 Andrew Cagney <cagney@redhat.com>
* frame.c (legacy_frame_p): Check for DEPRECATED_TARGET_READ_FP_P
and DEPRECATED_FP_REGNUM. Don't assume that the lack of
unwind_dummy_id indicates a legacy frame.
Diffstat (limited to 'gdb/frame.c')
-rw-r--r-- | gdb/frame.c | 27 |
1 files changed, 22 insertions, 5 deletions
diff --git a/gdb/frame.c b/gdb/frame.c index 6c2a29f..455d560 100644 --- a/gdb/frame.c +++ b/gdb/frame.c @@ -2280,11 +2280,28 @@ frame_sp_unwind (struct frame_info *next_frame) int legacy_frame_p (struct gdbarch *current_gdbarch) { - return (DEPRECATED_INIT_FRAME_PC_P () - || DEPRECATED_INIT_FRAME_PC_FIRST_P () - || DEPRECATED_INIT_EXTRA_FRAME_INFO_P () - || DEPRECATED_FRAME_CHAIN_P () - || !gdbarch_unwind_dummy_id_p (current_gdbarch)); + if (DEPRECATED_INIT_FRAME_PC_P () + || DEPRECATED_INIT_FRAME_PC_FIRST_P () + || DEPRECATED_INIT_EXTRA_FRAME_INFO_P () + || DEPRECATED_FRAME_CHAIN_P ()) + /* No question, it's a legacy frame. */ + return 1; + if (gdbarch_unwind_dummy_id_p (current_gdbarch)) + /* No question, it's not a legacy frame (provided none of the + deprecated methods checked above are present that is). */ + return 0; + if (DEPRECATED_TARGET_READ_FP_P () + || DEPRECATED_FP_REGNUM >= 0) + /* Assume it's legacy. If you're trying to convert a legacy frame + target to the new mechanism, get rid of these. legacy + get_prev_frame requires these when unwind_frame_id isn't + available. */ + return 1; + /* Default to assuming that it's brand new code, and hence not + legacy. Force it down the non-legacy path so that the new code + uses the new frame mechanism from day one. Dummy frame's won't + work very well but we can live with that. */ + return 0; } extern initialize_file_ftype _initialize_frame; /* -Wmissing-prototypes */ |