This is the mail archive of the
insight@sources.redhat.com
mailing list for the Insight project.
Re: [RFA] fix session breakpoints
- From: Keith Seitz <keiths at redhat dot com>
- To: "Martin M. Hunt" <hunt at redhat dot com>
- Cc: Insight Mailing List <insight at sources dot redhat dot com>
- Date: Wed, 2 Jan 2002 18:13:57 -0800 (PST)
- Subject: 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" {
>