This is the mail archive of the gdb-patches@sourceware.org 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]

[RFA-v2] Fix troubles with watchpoints in DJGPP



> -----Message d'origine-----
> De?: gdb-patches-owner@sourceware.org [mailto:gdb-patches-
> owner@sourceware.org] De la part de Pedro Alves
> Envoyé?: Thursday, May 28, 2009 1:30 AM
> À?: gdb-patches@sourceware.org
> Cc?: Pierre Muller (IMAP); 'Eli Zaretskii'
> Objet?: Re: [RFA] Fix troubles with watchpoints in DJGPP
> 
> On Wednesday 27 May 2009 08:48:49, Pierre Muller (IMAP) wrote:
> 
> > PS-1) Are there not other native targets, without
> > dynamic libraries, that will suffer the same troubles?
> 
> I think so.  I've just tried on x86_64-linux, with a statically
> linked binary (I used gdb.threads/staticthreads, set a watchpoint
> on semaphore), and although there are no shared libraries loaded,
> the problem is masked by adding the symbols of the vsyscall page
> (sysfile-mem.c:add_vsyscall_page).  If I hack that function to
> do nothing, I see that same thing you're seeing on djgpp.
> 
> Maybe there's a place for a generic fix?  Somewhere after
> having opened a connection to the target interface.  I was
> thinking of post_create_inferior, but sounds like opening
> a connection to a remote target with "target remote" that
> happens to not pull in any more symbols (like most embedded
> targets) is having the same problem?  Maybe there should be
> a target_post_open ...

  I submit here a more general fix
that calls breakpoint_re_set function
after the target is pushed in post_create_inferior.

  This patch works for go32 target, but 
should work for all other native targets that
have no dynamic libraries too.

 Is this OK?

Pierre

2009-06-08  Pierre Muller  <muller@ics.u-strasbg.fr>

	* infcmd.c (post_create_inferior): Call breakpoint_re_set after
target
	is pushed for watchpoint promotion to hardware watchpoint.

Index: src/gdb/infcmd.c
===================================================================
RCS file: /cvs/src/src/gdb/infcmd.c,v
retrieving revision 1.245
diff -u -p -r1.245 infcmd.c
--- src/gdb/infcmd.c	7 Jun 2009 16:46:48 -0000	1.245
+++ src/gdb/infcmd.c	8 Jun 2009 07:29:43 -0000
@@ -421,6 +421,9 @@ post_create_inferior (struct target_ops 
 #endif
     }
 
+  /* Call breakpoint_re_set to update watchpoints types.  */
+  breakpoint_re_set ();
+
   observer_notify_inferior_created (target, from_tty);
 }
 


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