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]

Re: [RFA] breakpoint.c: don't generate bp events for internal bps


On Fri, 11 May 2001, Fernando Nasser wrote:

> Keith, you have attached the same old patch!

Maybe that was intentional! ([hypnotizing voice] You _will_ see things my
way!)

Here's the real revised patch. No really, it is.

Index: breakpoint.c
===================================================================
RCS file: /cvs/src/src/gdb/breakpoint.c,v
retrieving revision 1.35
diff -u -p -r1.35 breakpoint.c
--- breakpoint.c	2001/05/06 22:22:02	1.35
+++ breakpoint.c	2001/05/11 16:01:17
@@ -318,6 +318,15 @@ int exception_support_initialized = 0;
    error ("catch of library unloads not yet implemented on this platform")
 #endif

+/* Is this breakpoint interesting to a user interface? */
+#define REPORT_BREAKPOINT_EVENT(bp) \
+((bp)->type == bp_breakpoint             \
+ || (bp)->type == bp_hardware_breakpoint \
+ || (bp)->type == bp_watchpoint          \
+ || (bp)->type == bp_hardware_watchpoint \
+ || (bp)->type == bp_read_watchpoint     \
+ || (bp)->type == bp_access_watchpoint)
+
 /* Set breakpoint count to NUM.  */

 void
@@ -4375,7 +4384,8 @@ mention (struct breakpoint *b)
      delete_breakpoint_hook and so on.  */
   if (create_breakpoint_hook)
     create_breakpoint_hook (b);
-  breakpoint_create_event (b->number);
+  if (REPORT_BREAKPOINT_EVENT (b))
+    breakpoint_create_event (b->number);

   switch (b->type)
     {
@@ -6735,7 +6745,8 @@ delete_breakpoint (struct breakpoint *bp

   if (delete_breakpoint_hook)
     delete_breakpoint_hook (bpt);
-  breakpoint_delete_event (bpt->number);
+  if (REPORT_BREAKPOINT_EVENT (bpt))
+    breakpoint_delete_event (bpt->number);

   if (bpt->inserted)
     remove_breakpoint (bpt, mark_uninserted);
@@ -7304,7 +7315,8 @@ disable_breakpoint (struct breakpoint *b

   if (modify_breakpoint_hook)
     modify_breakpoint_hook (bpt);
-  breakpoint_modify_event (bpt->number);
+  if (REPORT_BREAKPOINT_EVENT (bpt))
+    breakpoint_modify_event (bpt->number);
 }

 /* ARGSUSED */
@@ -7433,7 +7445,8 @@ have been allocated for other watchpoint
     }
   if (modify_breakpoint_hook)
     modify_breakpoint_hook (bpt);
-  breakpoint_modify_event (bpt->number);
+  if (REPORT_BREAKPOINT_EVENT (bpt))
+    breakpoint_modify_event (bpt->number);
 }

 void


> I am not against removing the hook.  I would not be so certain that
> NOTHING is using it as there are too many obscure academic projects
> going on using Free Software.  That is how Free Software started (and
> how I started hacking GDB) and I would not like to discard them.  But,
> whoever is doing anything with GDB should be monitoring this list.  So,
> if you post to gdb@sources saying that you will get rid of these hooks
> and nobody answers in a reasonable time, "off with their heads"!

Ugh. I suddenly remembered why I didn't post a patch eliminating the
hook.. annotate.c.

Maybe I should work on converting annotate.c, too? ;-)

Keith



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