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]

Re: Merging OC gdb with official gdb


> >> > #define HAVE_NONSTEPPABLE_WATCHPOINT
> >
> > What about this?
>
> Um, that will need thinking about (add to architecture or target vector)?
>
> Sigh, for the moment, add it (separate patch) as a variable to the
> architecture vector and then create a bug report noteing that it needs a
> re-think.

I've sumbitted a bug report and committed the patch:

Index: ChangeLog
===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.3305
diff -c -3 -p -r1.3305 ChangeLog
*** ChangeLog   9 Oct 2002 04:43:49 -0000       1.3305
--- ChangeLog   9 Oct 2002 11:44:06 -0000
***************
*** 1,3 ****
--- 1,9 ----
+ 2002-10-09  Marko Mlinar  <markom@opencores.org>
+
+       * infrun.c (resume): Convert #ifdef HAVE_NONSTEPPABLE_WATCHPOINT into 
C.
+       * gdbarch.sh (HAVE_NONSTEPPABLE_WATCHPOINT): Add.
+       * gdbarch.h, gdbarch.c: Re-generate.
+
  2002-10-08  Petr Sorfa <petrs@caldera.com>

        Revised and re-submitted by John Wolfe <jlw@caldera.com>
Index: gdbarch.c
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.c,v
retrieving revision 1.151
diff -c -3 -p -r1.151 gdbarch.c
*** gdbarch.c   2 Oct 2002 23:28:53 -0000       1.151
--- gdbarch.c   9 Oct 2002 11:44:07 -0000
*************** struct gdbarch
*** 270,275 ****
--- 270,276 ----
    gdbarch_coff_make_msymbol_special_ftype *coff_make_msymbol_special;
    const char * name_of_malloc;
    int cannot_step_breakpoint;
+   int have_nonsteppable_watchpoint;
  };


*************** verify_gdbarch (struct gdbarch *gdbarch)
*** 807,812 ****
--- 808,814 ----
    /* Skip verify of coff_make_msymbol_special, invalid_p == 0 */
    /* Skip verify of name_of_malloc, invalid_p == 0 */
    /* Skip verify of cannot_step_breakpoint, invalid_p == 0 */
+   /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
    buf = ui_file_xstrdup (log, &dummy);
    make_cleanup (xfree, buf);
    if (strlen (buf) > 0)
*************** gdbarch_dump (struct gdbarch *gdbarch, s
*** 1383,1388 ****
--- 1385,1398 ----
                          (long) current_gdbarch->get_saved_register
                          /*GET_SAVED_REGISTER ()*/);
  #endif
+ #ifdef HAVE_STEPPABLE_WATCHPOINT
+   fprintf_unfiltered (file,
+                       "gdbarch_dump: HAVE_STEPPABLE_WATCHPOINT # %s\n",
+                       XSTRING (HAVE_STEPPABLE_WATCHPOINT));
+   fprintf_unfiltered (file,
+                       "gdbarch_dump: HAVE_STEPPABLE_WATCHPOINT = %d\n",
+                       HAVE_STEPPABLE_WATCHPOINT);
+ #endif
  #ifdef INIT_EXTRA_FRAME_INFO
  #if GDB_MULTI_ARCH
    /* Macro might contain `[{}]' when not multi-arch */
*************** set_gdbarch_cannot_step_breakpoint (stru
*** 5050,5055 ****
--- 5060,5082 ----
                                      int cannot_step_breakpoint)
  {
    gdbarch->cannot_step_breakpoint = cannot_step_breakpoint;
+ }
+
+ int
+ gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch)
+ {
+   gdb_assert (gdbarch != NULL);
+   /* Skip verify of have_nonsteppable_watchpoint, invalid_p == 0 */
+   if (gdbarch_debug >= 2)
+     fprintf_unfiltered (gdb_stdlog, "gdbarch_have_nonsteppable_watchpoint 
called\n");
+   return gdbarch->have_nonsteppable_watchpoint;
+ }
+
+ void
+ set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch,
+                                     int have_nonsteppable_watchpoint)
+ {
+   gdbarch->have_nonsteppable_watchpoint = have_nonsteppable_watchpoint;
  }


Index: gdbarch.h
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.h,v
retrieving revision 1.119
diff -c -3 -p -r1.119 gdbarch.h
*** gdbarch.h   2 Oct 2002 23:28:53 -0000       1.119
--- gdbarch.h   9 Oct 2002 11:44:07 -0000
*************** extern void set_gdbarch_cannot_step_brea
*** 2595,2600 ****
--- 2595,2616 ----
  #endif
  #endif

+ /* Default (value) for non- multi-arch platforms. */
+ #if (!GDB_MULTI_ARCH) && !defined (HAVE_NONSTEPPABLE_WATCHPOINT)
+ #define HAVE_NONSTEPPABLE_WATCHPOINT (0)
+ #endif
+
+ extern int gdbarch_have_nonsteppable_watchpoint (struct gdbarch *gdbarch);
+ extern void set_gdbarch_have_nonsteppable_watchpoint (struct gdbarch 
*gdbarch, int have_nonsteppable_watchpoint);
+ #if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) && defined 
(HAVE_NONSTEPPABLE_WATCHPOINT)
+ #error "Non multi-arch definition of HAVE_NONSTEPPABLE_WATCHPOINT"
+ #endif
+ #if GDB_MULTI_ARCH
+ #if (GDB_MULTI_ARCH > GDB_MULTI_ARCH_PARTIAL) || !defined 
(HAVE_NONSTEPPABLE_WATCHPOINT)
+ #define HAVE_NONSTEPPABLE_WATCHPOINT (gdbarch_have_nonsteppable_watchpoint 
(current_gdbarch))
+ #endif
+ #endif
+
  extern struct gdbarch_tdep *gdbarch_tdep (struct gdbarch *gdbarch);


Index: gdbarch.sh
===================================================================
RCS file: /cvs/src/src/gdb/gdbarch.sh,v
retrieving revision 1.163
diff -c -3 -p -r1.163 gdbarch.sh
*** gdbarch.sh  2 Oct 2002 23:28:53 -0000       1.163
--- gdbarch.sh  9 Oct 2002 11:44:07 -0000
*************** f:2:ELF_MAKE_MSYMBOL_SPECIAL:void:elf_ma
*** 663,668 ****
--- 663,669 ----
  f:2:COFF_MAKE_MSYMBOL_SPECIAL:void:coff_make_msymbol_special:int val, struct 
minimal_symbol *msym:val, msym:::default_coff_make_msymbol_special::0
  v::NAME_OF_MALLOC:const char *:name_of_malloc::::"malloc":"malloc"::0
  v::CANNOT_STEP_BREAKPOINT:int:cannot_step_breakpoint::::0:0::0
+ v::HAVE_NONSTEPPABLE_WATCHPOINT:int:have_nonsteppable_watchpoint::::0:0::0
  EOF
  }



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