This is the mail archive of the
gdb-patches@sources.redhat.com
mailing list for the GDB project.
Re: Merging OC gdb with official gdb
- From: Marko Mlinar <markom at opencores dot org>
- To: gdb-patches at sources dot redhat dot com
- Date: Wed, 9 Oct 2002 13:59:54 +0200
- Subject: Re: Merging OC gdb with official gdb
- References: <200209041256.47379.markom@opencores.org> <200209201401.55531.markom@opencores.org> <3D9B8699.5000708@redhat.com>
> >> > #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
}