Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
* [commit] Hardware breakpoint errors patch, gdb/MAINTAINERS
@ 2012-09-17 19:59 Mike Wrighton
  2012-09-17 20:20 ` Jan Kratochvil
  2012-09-17 20:54 ` Tom Tromey
  0 siblings, 2 replies; 9+ messages in thread
From: Mike Wrighton @ 2012-09-17 19:59 UTC (permalink / raw)
  To: gdb-patches

Hi,

I've committed the following patches to fix the hardware breakpoint 
errors bug and add myself to the gdb/MAINTAINERS list (I had to correct 
an error in the gdb/Changelog entry hence 2 patches for that file).

Regards,
Mike

===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.702
retrieving revision 1.703
diff -u -r1.702 -r1.703
--- src/gdb/breakpoint.c	2012/08/27 16:55:35	1.702
+++ src/gdb/breakpoint.c	2012/09/12 20:01:10	1.703
@@ -2375,9 +2375,12 @@
  insert_bp_location (struct bp_location *bl,
  		    struct ui_file *tmp_error_stream,
  		    int *disabled_breaks,
-		    int *hw_breakpoint_error)
+		    int *hw_breakpoint_error,
+		    int *hw_bp_error_explained_already)
  {
    int val = 0;
+  char *hw_bp_err_string = NULL;
+  struct gdb_exception e;
  
    if (!should_be_inserted (bl) || (bl->inserted && !bl->needs_update))
      return 0;
@@ -2474,8 +2477,15 @@
  	  || !(section_is_overlay (bl->section)))
  	{
  	  /* No overlay handling: just set the breakpoint.  */
-
-	  val = bl->owner->ops->insert_location (bl);
+	  TRY_CATCH (e, RETURN_MASK_ALL)
+	    {
+	      val = bl->owner->ops->insert_location (bl);
+	    }
+	  if (e.reason < 0)
+	    {
+	      val = 1;
+	      hw_bp_err_string = (char *) e.message;
+	    }
  	}
        else
  	{
@@ -2509,7 +2519,15 @@
  	  if (section_is_mapped (bl->section))
  	    {
  	      /* Yes.  This overlay section is mapped into memory.  */
-	      val = bl->owner->ops->insert_location (bl);
+	      TRY_CATCH (e, RETURN_MASK_ALL)
+	        {
+	          val = bl->owner->ops->insert_location (bl);
+	        }
+	      if (e.reason < 0)
+	        {
+	          val = 1;
+	          hw_bp_err_string = (char *) e.message;
+	        }
  	    }
  	  else
  	    {
@@ -2545,11 +2563,13 @@
  	    {
  	      if (bl->loc_type == bp_loc_hardware_breakpoint)
  		{
-		  *hw_breakpoint_error = 1;
-		  fprintf_unfiltered (tmp_error_stream,
-				      "Cannot insert hardware "
-				      "breakpoint %d.\n",
-				      bl->owner->number);
+                  *hw_breakpoint_error = 1;
+                  *hw_bp_error_explained_already = hw_bp_err_string != NULL;
+                  fprintf_unfiltered (tmp_error_stream,
+                                      "Cannot insert hardware breakpoint %d%s",
+                                      bl->owner->number, hw_bp_err_string ? ":" : ".\n");
+                  if (hw_bp_err_string)
+                    fprintf_unfiltered (tmp_error_stream, "%s.\n", hw_bp_err_string);
  		}
  	      else
  		{
@@ -2741,6 +2761,7 @@
    int val = 0;
    int disabled_breaks = 0;
    int hw_breakpoint_error = 0;
+  int hw_bp_details_reported = 0;
  
    struct ui_file *tmp_error_stream = mem_fileopen ();
    struct cleanup *cleanups = make_cleanup_ui_file_delete (tmp_error_stream);
@@ -2775,7 +2796,7 @@
  	continue;
  
        val = insert_bp_location (bl, tmp_error_stream, &disabled_breaks,
-				    &hw_breakpoint_error);
+				    &hw_breakpoint_error, &hw_bp_details_reported);
        if (val)
  	error_flag = val;
      }
@@ -2800,6 +2821,7 @@
    int val = 0;
    int disabled_breaks = 0;
    int hw_breakpoint_error = 0;
+  int hw_bp_error_explained_already = 0;
  
    struct ui_file *tmp_error_stream = mem_fileopen ();
    struct cleanup *cleanups = make_cleanup_ui_file_delete (tmp_error_stream);
@@ -2833,7 +2855,7 @@
  	continue;
  
        val = insert_bp_location (bl, tmp_error_stream, &disabled_breaks,
-				    &hw_breakpoint_error);
+				    &hw_breakpoint_error, &hw_bp_error_explained_already);
        if (val)
  	error_flag = val;
      }
@@ -2878,7 +2900,7 @@
      {
        /* If a hardware breakpoint or watchpoint was inserted, add a
           message about possibly exhausted resources.  */
-      if (hw_breakpoint_error)
+      if (hw_breakpoint_error && !hw_bp_error_explained_already)
  	{
  	  fprintf_unfiltered (tmp_error_stream,
  			      "Could not insert hardware breakpoints:\n\
@@ -2943,7 +2965,7 @@
    struct bp_location *bl, **blp_tmp;
    int val;
    struct ui_file *tmp_error_stream;
-  int dummy1 = 0, dummy2 = 0;
+  int dummy1 = 0, dummy2 = 0, dummy3 = 0;
    struct inferior *inf;
    struct thread_info *tp;
  
@@ -2967,7 +2989,7 @@
      if (bl->inserted)
        {
  	bl->inserted = 0;
-	val = insert_bp_location (bl, tmp_error_stream, &dummy1, &dummy2);
+	val = insert_bp_location (bl, tmp_error_stream, &dummy1, &dummy2, &dummy3);
  	if (val != 0)
  	  {
  	    do_cleanups (old_chain);


===================================================================
RCS file: /cvs/src/src/gdb/remote.c,v
retrieving revision 1.509
retrieving revision 1.510
diff -u -r1.509 -r1.510
--- src/gdb/remote.c	2012/08/28 14:08:41	1.509
+++ src/gdb/remote.c	2012/09/12 20:01:10	1.510
@@ -7026,6 +7026,7 @@
    int ch;
    int tcount = 0;
    char *p;
+  char *message;
  
    /* Catch cases like trying to read memory or listing threads while
       we're waiting for a stop reply.  The remote server wouldn't be
@@ -8181,6 +8182,7 @@
    CORE_ADDR addr;
    struct remote_state *rs;
    char *p, *endbuf;
+  char *message;
  
    /* The length field should be set to the size of a breakpoint
       instruction, even though we aren't inserting one ourselves.  */
@@ -8215,6 +8217,13 @@
    switch (packet_ok (rs->buf, &remote_protocol_packets[PACKET_Z1]))
      {
      case PACKET_ERROR:
+      if (rs->buf[1] == '.')
+        {
+          message = strchr (rs->buf + 2, '.');
+          if (message)
+            error ("Remote failure reply: %s", message + 1);
+        }
+      return -1;
      case PACKET_UNKNOWN:
        return -1;
      case PACKET_OK:

===================================================================
RCS file: /cvs/src/src/gdb/MAINTAINERS,v
retrieving revision 1.490
retrieving revision 1.491
diff -u -r1.490 -r1.491
--- src/gdb/MAINTAINERS	2012/08/30 18:59:53	1.490
+++ src/gdb/MAINTAINERS	2012/09/17 14:26:29	1.491
@@ -645,6 +645,7 @@
  Nathan Williams					nathanw@wasabisystems.com
  Bob Wilson					bob.wilson@acm.org
  Jim Wilson					wilson@tuliptree.org
+Mike Wrighton					wrighton@codesourcery.com
  Kwok Cheung Yeung				kcy@codesourcery.com
  Elena Zannoni					elena.zannoni@oracle.com
  Eli Zaretskii					eliz@gnu.org

===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.14670
retrieving revision 1.14671
diff -u -r1.14670 -r1.14671
--- src/gdb/ChangeLog	2012/09/17 18:27:57	1.14670
+++ src/gdb/ChangeLog	2012/09/17 19:16:48	1.14671
@@ -1,3 +1,7 @@
+2012-09-17  Mike Wrighton  <wrighton@codesourcery.com>
+
+	* MAINTAINERS (Write After Approval): Add "Mike Wrighton".
+
  2012-09-17  Jan Kratochvil  <jan.kratochvil@redhat.com>
  
  	* common/linux-ptrace.c: Change __i386__ to __i386__ || __x86_64__.
@@ -175,6 +179,7 @@
  	(DECLARE_REGISTRY): Declare struct TAG ## _data.  Use the tagged
  	callback typedefs.
  
+>>>>>>> 1.14670
  2012-09-12  Doug Evans  <dje@google.com>
  
  	* dwarf2read.c (dwarf2_read_addr_index): Fix handling the case where


===================================================================
RCS file: /cvs/src/src/gdb/ChangeLog,v
retrieving revision 1.14671
retrieving revision 1.14672
diff -u -r1.14671 -r1.14672
--- src/gdb/ChangeLog	2012/09/17 19:16:48	1.14671
+++ src/gdb/ChangeLog	2012/09/17 19:29:52	1.14672
@@ -179,7 +179,6 @@
  	(DECLARE_REGISTRY): Declare struct TAG ## _data.  Use the tagged
  	callback typedefs.
  
->>>>>>> 1.14670
  2012-09-12  Doug Evans  <dje@google.com>
  
  	* dwarf2read.c (dwarf2_read_addr_index): Fix handling the case where


^ permalink raw reply	[flat|nested] 9+ messages in thread

end of thread, other threads:[~2012-11-06 16:03 UTC | newest]

Thread overview: 9+ messages (download: mbox.gz / follow: Atom feed)
-- links below jump to the message on this page --
2012-09-17 19:59 [commit] Hardware breakpoint errors patch, gdb/MAINTAINERS Mike Wrighton
2012-09-17 20:20 ` Jan Kratochvil
2012-09-17 20:42   ` Mike Wrighton
2012-09-17 20:51     ` Jan Kratochvil
2012-11-06 15:47     ` About " Pierre Muller
2012-11-06 15:52       ` Mike Wrighton
2012-11-06 16:01         ` [PATCH/OBV] ARI markup fix (was [commit] Hardware breakpoint errors patch) Pierre Muller
     [not found]     ` <17318.3850398802$1352216892@news.gmane.org>
2012-11-06 16:03       ` About [commit] Hardware breakpoint errors patch, gdb/MAINTAINERS Tom Tromey
2012-09-17 20:54 ` Tom Tromey

This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox