diff options
Diffstat (limited to 'gdb/frame.h')
-rw-r--r-- | gdb/frame.h | 116 |
1 files changed, 0 insertions, 116 deletions
diff --git a/gdb/frame.h b/gdb/frame.h index 759cd32..5ee96ce 100644 --- a/gdb/frame.h +++ b/gdb/frame.h @@ -84,109 +84,10 @@ struct ui_file; struct ui_out; struct frame_print_options; -/* Status of a given frame's stack. */ - -enum frame_id_stack_status -{ - /* Stack address is invalid. */ - FID_STACK_INVALID = 0, - - /* Stack address is valid, and is found in the stack_addr field. */ - FID_STACK_VALID = 1, - - /* Sentinel frame. */ - FID_STACK_SENTINEL = 2, - - /* Outer frame. Since a frame's stack address is typically defined as the - value the stack pointer had prior to the activation of the frame, an outer - frame doesn't have a stack address. The frame ids of frames inlined in the - outer frame are also of this type. */ - FID_STACK_OUTER = 3, - - /* Stack address is unavailable. I.e., there's a valid stack, but - we don't know where it is (because memory or registers we'd - compute it from were not collected). */ - FID_STACK_UNAVAILABLE = -1 -}; - /* The frame object. */ class frame_info_ptr; -/* The frame object's ID. This provides a per-frame unique identifier - that can be used to relocate a `struct frame_info' after a target - resume or a frame cache destruct. It of course assumes that the - inferior hasn't unwound the stack past that frame. */ - -struct frame_id -{ - /* The frame's stack address. This shall be constant through out - the lifetime of a frame. Note that this requirement applies to - not just the function body, but also the prologue and (in theory - at least) the epilogue. Since that value needs to fall either on - the boundary, or within the frame's address range, the frame's - outer-most address (the inner-most address of the previous frame) - is used. Watch out for all the legacy targets that still use the - function pointer register or stack pointer register. They are - wrong. - - This field is valid only if frame_id.stack_status is - FID_STACK_VALID. It will be 0 for other - FID_STACK_... statuses. */ - CORE_ADDR stack_addr; - - /* The frame's code address. This shall be constant through out the - lifetime of the frame. While the PC (a.k.a. resume address) - changes as the function is executed, this code address cannot. - Typically, it is set to the address of the entry point of the - frame's function (as returned by get_frame_func). - - For inlined functions (INLINE_DEPTH != 0), this is the address of - the first executed instruction in the block corresponding to the - inlined function. - - This field is valid only if code_addr_p is true. Otherwise, this - frame is considered to have a wildcard code address, i.e. one that - matches every address value in frame comparisons. */ - CORE_ADDR code_addr; - - /* The frame's special address. This shall be constant through out the - lifetime of the frame. This is used for architectures that may have - frames that do not change the stack but are still distinct and have - some form of distinct identifier (e.g. the ia64 which uses a 2nd - stack for registers). This field is treated as unordered - i.e. will - not be used in frame ordering comparisons. - - This field is valid only if special_addr_p is true. Otherwise, this - frame is considered to have a wildcard special address, i.e. one that - matches every address value in frame comparisons. */ - CORE_ADDR special_addr; - - /* Flags to indicate the above fields have valid contents. */ - ENUM_BITFIELD(frame_id_stack_status) stack_status : 3; - unsigned int code_addr_p : 1; - unsigned int special_addr_p : 1; - - /* It is non-zero for a frame made up by GDB without stack data - representation in inferior, such as INLINE_FRAME or TAILCALL_FRAME. - Caller of inlined function will have it zero, each more inner called frame - will have it increasingly one, two etc. Similarly for TAILCALL_FRAME. */ - int artificial_depth; - - /* Return a string representation of this frame id. */ - std::string to_string () const; - - /* Returns true when this frame_id and R identify the same - frame. */ - bool operator== (const frame_id &r) const; - - /* Inverse of ==. */ - bool operator!= (const frame_id &r) const - { - return !(*this == r); - } -}; - /* Save and restore the currently selected frame. */ class scoped_restore_selected_frame @@ -212,19 +113,6 @@ private: enum language m_lang; }; -/* Methods for constructing and comparing Frame IDs. */ - -/* For convenience. All fields are zero. This means "there is no frame". */ -extern const struct frame_id null_frame_id; - -/* Sentinel frame. */ -extern const struct frame_id sentinel_frame_id; - -/* This means "there is no frame ID, but there is a frame". It should be - replaced by best-effort frame IDs for the outermost frame, somehow. - The implementation is only special_addr_p set. */ -extern const struct frame_id outer_frame_id; - /* Flag to control debugging. */ extern bool frame_debug; @@ -399,10 +287,6 @@ extern frame_info_ptr get_next_frame_sentinel_okay (frame_info_ptr ); frame. */ extern frame_info_ptr get_prev_frame_always (frame_info_ptr ); -/* Given a frame's ID, relocate the frame. Returns NULL if the frame - is not found. */ -extern frame_info_ptr frame_find_by_id (struct frame_id id); - /* Base attributes of a frame: */ /* The frame's `resume' address. Where the program will resume in |