This is the mail archive of the gdb-patches@sources.redhat.com mailing list for the GDB project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]
Other format: [Raw text]

[commit] Deprecate CALL_DUMMY_HAS_COMPLETED


Hello,

The attached deprecates CALL_DUMMY_HAS_COMPLETED (now only defined by HP/UX). When the macro isn't present it uses the far simpler:

+  if (get_frame_type (get_current_frame ()) == DUMMY_FRAME)
+    frame_pop (get_current_frame ());

to determine if it is in a dummy frame.

Note that because get_current_frame(), for a legacy architecture's dummy frame, calls DEPRECATED_PC_IN_CALL_DUMMY, there isn't a need to call DEPRECATED_PC_IN_CALL_DUMMY directly.

committed,
Andrew
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.

Index: inferior.h
===================================================================
RCS file: /cvs/src/src/gdb/inferior.h,v
retrieving revision 1.59
diff -u -r1.59 inferior.h
--- inferior.h	7 Aug 2003 23:41:57 -0000	1.59
+++ inferior.h	31 Oct 2003 22:26:24 -0000
@@ -472,29 +472,6 @@
 						       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.,
Index: stack.c
===================================================================
RCS file: /cvs/src/src/gdb/stack.c,v
retrieving revision 1.91
diff -u -r1.91 stack.c
--- stack.c	23 Oct 2003 22:36:14 -0000	1.91
+++ stack.c	31 Oct 2003 22:26:24 -0000
@@ -1945,9 +1945,17 @@
   /* 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)
Index: config/pa/tm-hppa.h
===================================================================
RCS file: /cvs/src/src/gdb/config/pa/tm-hppa.h,v
retrieving revision 1.59
diff -u -r1.59 tm-hppa.h
--- config/pa/tm-hppa.h	28 Sep 2003 16:12:50 -0000	1.59
+++ config/pa/tm-hppa.h	31 Oct 2003 22:26:25 -0000
@@ -208,7 +208,7 @@
 /* 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))
 

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]