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 Wed, 2 Jan 2002, Martin M. Hunt wrote:

> 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.

While I agree with Tom that it would be nice to fix this for real, I also
acknowledge that there are for more people using sessions to do
init-script like things than those using gdb's init files.

What we really want is something in breakpoint.c to tell us if the
breakpoint was set from an init script. Somehow I doubt we'd get it.

Please add a comment about our failure to deal with this generically, but
for now, we might as well make developers' lives easier. Then commit.

Thanks,
Keith

> 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]