This is the mail archive of the insight@sources.redhat.com mailing list for the Insight 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: [RFA] fix session breakpoints


On Monday 17 December 2001 02:47 pm, Martin M. Hunt wrote:
> I often use Insight to debug itself. After a few hundred times, things get
> a bit slow as Insight sets a few hundred breakpoints on info_command and
> internal_error. So here's a simple patch.  It not only stops these
> breakpoints from accumulating but will also eliminate them from .gdbtkinit.

This is a second version of the patch that attempts to check if you are
debugging gdb with itself before ignoring those breakpoints.  It assumes the
name of the executable starts with "gdb" or "insight".  Of course this isn't 
ideal either, but anything else will require GDB changes and IMO will not be 
worth the effort.

-- 
Martin Hunt
GDB Engineer
Red Hat, Inc.

Index: session.tcl
===================================================================
RCS file: /cvs/src/src/gdb/gdbtk/library/session.tcl,v
retrieving revision 1.9
diff -u -r1.9 session.tcl
--- session.tcl	2001/10/28 20:08:39	1.9
+++ session.tcl	2002/01/02 20:35:20
@@ -33,11 +33,28 @@
 proc SESSION_serialize_bps {} {
   set result {}
 
+  set basename [string tolower [file tail $::gdb_exe_name]]
+  if {[string match "gdb*" $basename] 
+      || [string match "insight*" $basename]} {
+    set debugging_gdb 1
+  } else {
+    set debugging_gdb 0
+  }
+  
   foreach bp_num [gdb_get_breakpoint_list] {
     lassign [gdb_get_breakpoint_info $bp_num] file function line_number \
       address type enabled disposition ignore_count command_list \
       condition thread hit_count user_specification
 
+    # These breakpoints are set when debugging GDB with itself.
+    # Ignore them so they don't accumulate. They get set again
+    # by .gdbinit anyway.
+    if {$debugging_gdb} {
+      if {$function == "internal_error" || $function == "info_command"} {
+	continue
+      }
+    }
+    
     switch -glob -- $type {
       "breakpoint" -
       "hw breakpoint" {


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