2007-06-09 Markus Deuling <deuling@de.ibm.com>
authorUlrich Weigand <uweigand@de.ibm.com>
Sat, 9 Jun 2007 14:20:24 +0000 (14:20 +0000)
committerUlrich Weigand <uweigand@de.ibm.com>
Sat, 9 Jun 2007 14:20:24 +0000 (14:20 +0000)
* gdbarch.sh (SKIP_TRAMPOLINE_CODE): Replace by
gdbarch_skip_trampoline_code.
* rs6000-tdep.c (rs6000_in_solib_return_trampoline): Likewise (comment).
* objc-lang.c (objc_skip_trampoline)
(objc_submethod_helper_data): Likewise.
* m32c-lang.c (m32c_skip_trampoline_code): Likewise (comment).
* infrun.c (handle_inferior_event): Likewise.
* gnu-v3-abi.c (gnuv3_skip_trampoline): Likewise.
* gdbarch.sh (IN_SOLIB_RETURN_TRAMPOLINE): Replace by
gdbarch_in_solib_return_trampoline.
* rs6000-tdep.c (rs6000_in_solib_return_trampoline): Likewise (comment).
* infrun.c (handle_inferior_event): Likewise.
* hppa-tdep.c (hppa_stub_unwind_sniffer): Likewise.
* gdbarch.c, gdbarch.h: Regenerate.

gdb/ChangeLog
gdb/gdbarch.c
gdb/gdbarch.h
gdb/gdbarch.sh
gdb/gnu-v3-abi.c
gdb/hppa-tdep.c
gdb/infrun.c
gdb/m32c-tdep.c
gdb/objc-lang.c
gdb/rs6000-tdep.c

index c2dab555d1d24bca9c49ef078d43f4cb02780dbc..7d40213421cfab8a2f01a3e40320b17f774bf1f4 100644 (file)
@@ -1,3 +1,20 @@
+2007-06-09  Markus Deuling  <deuling@de.ibm.com>
+
+       * gdbarch.sh (SKIP_TRAMPOLINE_CODE): Replace by
+       gdbarch_skip_trampoline_code.
+       * rs6000-tdep.c (rs6000_in_solib_return_trampoline): Likewise (comment).
+       * objc-lang.c (objc_skip_trampoline)
+       (objc_submethod_helper_data): Likewise.
+       * m32c-lang.c (m32c_skip_trampoline_code): Likewise (comment).
+       * infrun.c (handle_inferior_event): Likewise.
+       * gnu-v3-abi.c (gnuv3_skip_trampoline): Likewise.
+       * gdbarch.sh (IN_SOLIB_RETURN_TRAMPOLINE): Replace by
+       gdbarch_in_solib_return_trampoline.
+       * rs6000-tdep.c (rs6000_in_solib_return_trampoline): Likewise (comment).
+       * infrun.c (handle_inferior_event): Likewise.
+       * hppa-tdep.c (hppa_stub_unwind_sniffer): Likewise.
+       * gdbarch.c, gdbarch.h: Regenerate.
+
 2007-06-09  Markus Deuling  <deuling@de.ibm.com>
 
        * gdbarch.sh (SKIP_PROLOGUE): Replace by gdbarch_skip_prologue.
index 2b44c82a17cdd2ec144d736499b99b3dc90cef7a..f20b5bc632d468bfe8dec68500ab9c9662851a1d 100644 (file)
@@ -971,12 +971,6 @@ gdbarch_dump (struct gdbarch *current_gdbarch, struct ui_file *file)
   fprintf_unfiltered (file,
                       "gdbarch_dump: in_function_epilogue_p = <0x%lx>\n",
                       (long) current_gdbarch->in_function_epilogue_p);
-#ifdef IN_SOLIB_RETURN_TRAMPOLINE
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "IN_SOLIB_RETURN_TRAMPOLINE(pc, name)",
-                      XSTRING (IN_SOLIB_RETURN_TRAMPOLINE (pc, name)));
-#endif
   fprintf_unfiltered (file,
                       "gdbarch_dump: in_solib_return_trampoline = <0x%lx>\n",
                       (long) current_gdbarch->in_solib_return_trampoline);
@@ -1226,12 +1220,6 @@ gdbarch_dump (struct gdbarch *current_gdbarch, struct ui_file *file)
   fprintf_unfiltered (file,
                       "gdbarch_dump: skip_solib_resolver = <0x%lx>\n",
                       (long) current_gdbarch->skip_solib_resolver);
-#ifdef SKIP_TRAMPOLINE_CODE
-  fprintf_unfiltered (file,
-                      "gdbarch_dump: %s # %s\n",
-                      "SKIP_TRAMPOLINE_CODE(pc)",
-                      XSTRING (SKIP_TRAMPOLINE_CODE (pc)));
-#endif
   fprintf_unfiltered (file,
                       "gdbarch_dump: skip_trampoline_code = <0x%lx>\n",
                       (long) current_gdbarch->skip_trampoline_code);
index bd28b190a599658a54942444a93cd3f7486619a2..21f26025d55011ed2d935cb234d7976271846530 100644 (file)
@@ -923,12 +923,6 @@ extern void set_gdbarch_print_insn (struct gdbarch *gdbarch, gdbarch_print_insn_
 typedef CORE_ADDR (gdbarch_skip_trampoline_code_ftype) (CORE_ADDR pc);
 extern CORE_ADDR gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, CORE_ADDR pc);
 extern void set_gdbarch_skip_trampoline_code (struct gdbarch *gdbarch, gdbarch_skip_trampoline_code_ftype *skip_trampoline_code);
-#if !defined (GDB_TM_FILE) && defined (SKIP_TRAMPOLINE_CODE)
-#error "Non multi-arch definition of SKIP_TRAMPOLINE_CODE"
-#endif
-#if !defined (SKIP_TRAMPOLINE_CODE)
-#define SKIP_TRAMPOLINE_CODE(pc) (gdbarch_skip_trampoline_code (current_gdbarch, pc))
-#endif
 
 /* If IN_SOLIB_DYNSYM_RESOLVE_CODE returns true, and SKIP_SOLIB_RESOLVER
    evaluates non-zero, this is the address where the debugger will place
@@ -943,12 +937,6 @@ extern void set_gdbarch_skip_solib_resolver (struct gdbarch *gdbarch, gdbarch_sk
 typedef int (gdbarch_in_solib_return_trampoline_ftype) (CORE_ADDR pc, char *name);
 extern int gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, CORE_ADDR pc, char *name);
 extern void set_gdbarch_in_solib_return_trampoline (struct gdbarch *gdbarch, gdbarch_in_solib_return_trampoline_ftype *in_solib_return_trampoline);
-#if !defined (GDB_TM_FILE) && defined (IN_SOLIB_RETURN_TRAMPOLINE)
-#error "Non multi-arch definition of IN_SOLIB_RETURN_TRAMPOLINE"
-#endif
-#if !defined (IN_SOLIB_RETURN_TRAMPOLINE)
-#define IN_SOLIB_RETURN_TRAMPOLINE(pc, name) (gdbarch_in_solib_return_trampoline (current_gdbarch, pc, name))
-#endif
 
 /* A target might have problems with watchpoints as soon as the stack
    frame of the current function has been destroyed.  This mostly happens
index 2f7a7f56c160c35a1b7faddbf45081cf8041bc5d..b729c6b97facb05013869465bfe3232b083f6444 100755 (executable)
@@ -621,7 +621,7 @@ M::int:single_step_through_delay:struct frame_info *frame:frame
 # FIXME: cagney/2003-08-28: Need to find a better way of selecting the
 # disassembler.  Perhaps objdump can handle it?
 f:TARGET_PRINT_INSN:int:print_insn:bfd_vma vma, struct disassemble_info *info:vma, info::0:
-f:=:CORE_ADDR:skip_trampoline_code:CORE_ADDR pc:pc::generic_skip_trampoline_code::0
+f::CORE_ADDR:skip_trampoline_code:CORE_ADDR pc:pc::generic_skip_trampoline_code::0
 
 
 # If IN_SOLIB_DYNSYM_RESOLVE_CODE returns true, and SKIP_SOLIB_RESOLVER
@@ -629,7 +629,7 @@ f:=:CORE_ADDR:skip_trampoline_code:CORE_ADDR pc:pc::generic_skip_trampoline_code
 # a step-resume breakpoint to get us past the dynamic linker.
 m::CORE_ADDR:skip_solib_resolver:CORE_ADDR pc:pc::generic_skip_solib_resolver::0
 # Some systems also have trampoline code for returning from shared libs.
-f:=:int:in_solib_return_trampoline:CORE_ADDR pc, char *name:pc, name::generic_in_solib_return_trampoline::0
+f::int:in_solib_return_trampoline:CORE_ADDR pc, char *name:pc, name::generic_in_solib_return_trampoline::0
 
 # A target might have problems with watchpoints as soon as the stack
 # frame of the current function has been destroyed.  This mostly happens
index d3c278c96a0a9fa0b43875b8f7616dc8fa386d82..d7f00fc221c4f6e6cbf9bddc8cfaeba253524d60 100644 (file)
@@ -685,7 +685,7 @@ gnuv3_skip_trampoline (CORE_ADDR stop_pc)
   struct obj_section *section;
   char *thunk_name, *fn_name;
   
-  real_stop_pc = SKIP_TRAMPOLINE_CODE (stop_pc);
+  real_stop_pc = gdbarch_skip_trampoline_code (current_gdbarch, stop_pc);
   if (real_stop_pc == 0)
     real_stop_pc = stop_pc;
 
@@ -708,7 +708,8 @@ gnuv3_skip_trampoline (CORE_ADDR stop_pc)
     return 0;
 
   method_stop_pc = SYMBOL_VALUE_ADDRESS (fn_sym);
-  real_stop_pc = SKIP_TRAMPOLINE_CODE (method_stop_pc);
+  real_stop_pc = gdbarch_skip_trampoline_code
+                  (current_gdbarch, method_stop_pc);
   if (real_stop_pc == 0)
     real_stop_pc = method_stop_pc;
 
index 8a05c7379732323fefd6f87e6d5a7fe9feca8dc6..7658aec293523ca4ce314f9c21fd654da09a3cfa 100644 (file)
@@ -2456,7 +2456,7 @@ hppa_stub_unwind_sniffer (struct frame_info *next_frame)
   if (pc == 0
       || (tdep->in_solib_call_trampoline != NULL
          && tdep->in_solib_call_trampoline (pc, NULL))
-      || IN_SOLIB_RETURN_TRAMPOLINE (pc, NULL))
+      || gdbarch_in_solib_return_trampoline (current_gdbarch, pc, NULL))
     return &hppa_stub_frame_unwind;
   return NULL;
 }
index 3c641565e130827fca7020d4c9c002d695f9673c..7b055042f1d7cfe8a779d78b12bc615745e5beaf 100644 (file)
@@ -2458,7 +2458,7 @@ process_event_stop_test:
          end of, if we do step into it.  */
       real_stop_pc = skip_language_trampoline (stop_pc);
       if (real_stop_pc == 0)
-       real_stop_pc = SKIP_TRAMPOLINE_CODE (stop_pc);
+       real_stop_pc = gdbarch_skip_trampoline_code (current_gdbarch, stop_pc);
       if (real_stop_pc != 0)
        ecs->stop_func_start = real_stop_pc;
 
@@ -2516,10 +2516,12 @@ process_event_stop_test:
 
   /* If we're in the return path from a shared library trampoline,
      we want to proceed through the trampoline when stepping.  */
-  if (IN_SOLIB_RETURN_TRAMPOLINE (stop_pc, ecs->stop_func_name))
+  if (gdbarch_in_solib_return_trampoline (current_gdbarch,
+                                         stop_pc, ecs->stop_func_name))
     {
       /* Determine where this trampoline returns.  */
-      CORE_ADDR real_stop_pc = SKIP_TRAMPOLINE_CODE (stop_pc);
+      CORE_ADDR real_stop_pc = gdbarch_skip_trampoline_code
+                                (current_gdbarch, stop_pc);
 
       if (debug_infrun)
         fprintf_unfiltered (gdb_stdlog, "infrun: stepped into solib return tramp\n");
index 5763d5c0676932c39210b37c3518fd5ed49f330e..02b0541af883cb918742d6a3a621191a7db1fdb0 100644 (file)
@@ -2319,10 +2319,10 @@ m32c_return_value (struct gdbarch *gdbarch,
    their program is calling, not in some trampoline code they've never
    seen before.)
 
-   The SKIP_TRAMPOLINE_CODE gdbarch method tells GDB how to step
+   The gdbarch_skip_trampoline_code method tells GDB how to step
    through such trampoline functions transparently to the user.  When
    given the address of a trampoline function's first instruction,
-   SKIP_TRAMPOLINE_CODE should return the address of the first
+   gdbarch_skip_trampoline_code should return the address of the first
    instruction of the function really being called.  If GDB decides it
    wants to step into that function, it will set a breakpoint there
    and silently continue to it.
index 1f30d7c988cc57fae2e683877f2832cf40e65f49..261e818c1e5744037c818991fd9546d1fc8da84b 100644 (file)
@@ -576,7 +576,7 @@ objc_skip_trampoline (CORE_ADDR stop_pc)
   CORE_ADDR real_stop_pc;
   CORE_ADDR method_stop_pc;
   
-  real_stop_pc = SKIP_TRAMPOLINE_CODE (stop_pc);
+  real_stop_pc = gdbarch_skip_trampoline_code (current_gdbarch, stop_pc);
 
   if (real_stop_pc != 0)
     find_objc_msgcall (real_stop_pc, &method_stop_pc);
@@ -585,7 +585,8 @@ objc_skip_trampoline (CORE_ADDR stop_pc)
 
   if (method_stop_pc)
     {
-      real_stop_pc = SKIP_TRAMPOLINE_CODE (method_stop_pc);
+      real_stop_pc = gdbarch_skip_trampoline_code
+                      (current_gdbarch, method_stop_pc);
       if (real_stop_pc == 0)
        real_stop_pc = method_stop_pc;
     }
@@ -1647,7 +1648,7 @@ find_objc_msgsend (void)
  * The old function "pc_off_limits" used to do a lot of other things
  * in addition, such as detecting shared library jump stubs and
  * returning the address of the shlib function that would be called.
- * That functionality has been moved into the SKIP_TRAMPOLINE_CODE and
+ * That functionality has been moved into the gdbarch_skip_trampoline_code and
  * IN_SOLIB_TRAMPOLINE macros, which are resolved in the target-
  * dependent modules.  
  */
index 50557c0fc8655a64749c9c32c1a8b065395d0eb0..7712bd27955df88d2954fc769eaac96ae99f4ae7 100644 (file)
@@ -1946,8 +1946,8 @@ rs6000_return_value (struct gdbarch *gdbarch, struct type *valtype,
    branches, meaning that the link register doesn't get set.
    Therefore, GDB's usual step_over_function () mechanism won't work.
 
-   Instead, use the IN_SOLIB_RETURN_TRAMPOLINE and
-   SKIP_TRAMPOLINE_CODE hooks in handle_inferior_event() to skip past
+   Instead, use the gdbarch_skip_trampoline_code and
+   gdbarch_skip_trampoline_code hooks in handle_inferior_event() to skip past
    @FIX code.  */
 
 int