2003-10-31 Andrew Cagney <cagney@redhat.com>

* stack.c (return_command): Use get_frame_type, instead of
	CALL_DUMMY_HAS_COMPLETED.
	* inferior.h (CALL_DUMMY_HAS_COMPLETED): Delete definition.
	* config/pa/tm-hppa.h (CALL_DUMMY_HAS_COMPLETED): Delete macro.
This commit is contained in:
Andrew Cagney 2003-10-31 22:38:22 +00:00
parent 4c05fe5325
commit e8bcf01f1b
4 changed files with 18 additions and 26 deletions

View File

@ -1,3 +1,10 @@
2003-10-31 Andrew Cagney <cagney@redhat.com>
* stack.c (return_command): Use get_frame_type, instead of
CALL_DUMMY_HAS_COMPLETED.
* inferior.h (CALL_DUMMY_HAS_COMPLETED): Delete definition.
* config/pa/tm-hppa.h (CALL_DUMMY_HAS_COMPLETED): Delete macro.
2003-10-31 Mark Kettenis <kettenis@gnu.org>
* x86-64-linux-tdep.c (x86_64_linux_sc_reg_offset): Don't

View File

@ -208,7 +208,7 @@ extern void hppa_frame_init_saved_regs (struct frame_info *);
/* If we've reached a trap instruction within the call dummy, then
we'll consider that to mean that we've reached the call dummy's
end after its successful completion. */
#define CALL_DUMMY_HAS_COMPLETED(pc, sp, frame_address) \
#define DEPRECATED_CALL_DUMMY_HAS_COMPLETED(pc, sp, frame_address) \
(DEPRECATED_PC_IN_CALL_DUMMY((pc), (sp), (frame_address)) && \
(read_memory_integer((pc), 4) == BREAKPOINT32))

View File

@ -472,29 +472,6 @@ extern int deprecated_pc_in_call_dummy_at_entry_point (CORE_ADDR pc,
CORE_ADDR sp,
CORE_ADDR frame_address);
/* It's often not enough for our clients to know whether the PC is merely
somewhere within the call dummy. They may need to know whether the
call dummy has actually completed. (For example, wait_for_inferior
wants to know when it should truly stop because the call dummy has
completed. If we're single-stepping because of slow watchpoints,
then we may find ourselves stopped at the entry of the call dummy,
and want to continue stepping until we reach the end.)
Note that this macro is intended for targets (like HP-UX) which
require more than a single breakpoint in their call dummies, and
therefore cannot use the DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET
mechanism.
If a target does define DEPRECATED_CALL_DUMMY_BREAKPOINT_OFFSET,
then this default implementation of CALL_DUMMY_HAS_COMPLETED is
sufficient. Else, a target may wish to supply an implementation
that works in the presense of multiple breakpoints in its call
dummy. */
#if !defined(CALL_DUMMY_HAS_COMPLETED)
#define CALL_DUMMY_HAS_COMPLETED(pc, sp, frame_address) \
DEPRECATED_PC_IN_CALL_DUMMY((pc), (sp), (frame_address))
#endif
/* If STARTUP_WITH_SHELL is set, GDB's "run"
will attempts to start up the debugee under a shell.
This is in order for argument-expansion to occur. E.g.,

View File

@ -1945,9 +1945,17 @@ The location at which to store the function's return value is unknown.\n";
/* NOTE: cagney/2003-01-18: Is this silly? Instead of popping all
the frames in sequence, should this code just pop the dummy frame
directly? */
if (CALL_DUMMY_HAS_COMPLETED (read_pc(), read_sp (),
get_frame_base (get_current_frame ())))
#ifdef DEPRECATED_CALL_DUMMY_HAS_COMPLETED
/* Since all up-to-date architectures return direct to the dummy
breakpoint address, a dummy frame has, by definition, always
completed. Hence this method is no longer needed. */
if (DEPRECATED_CALL_DUMMY_HAS_COMPLETED (read_pc(), read_sp (),
get_frame_base (get_current_frame ())))
frame_pop (get_current_frame ());
#else
if (get_frame_type (get_current_frame ()) == DUMMY_FRAME)
frame_pop (get_current_frame ());
#endif
/* If interactive, print the frame that is now current. */
if (from_tty)