This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
Re: PR8554: New command to save breakpoints to a file
On Friday 09 April 2010 17:17:31, Tom Tromey wrote:
> >>>>> "Pedro" == Pedro Alves <pedro@codesourcery.com> writes:
>
> Pedro> (I finished this instead of dumping it.)
>
> Thanks. I do like this approach.
>
> Pedro> Add a new save-breakpoints command to save breakpoint definitions
> Pedro> to a file.
>
> I'd personally prefer "save breakpoints", with a space, and make
> save-tracepoints a deprecated alias for "save tracepoints". What do you
> (and others) think of this? I tend to like simple commands with spaces,
> especially when a subcommand comes along.
Fine with me.
> Pedro> The new breakpoint_ops->print_recreate method implementation for
> Pedro> all catchpoints is always mostly a simplified version of
> Pedro> breakpoint_ops->print_mention method.
>
> Could you enlighten me on a historical (?) point? Why is it that some
> kinds of breakpoints have methods like this and some do not? Is this an
> incomplete transition, or an intentional design choice?
I think the former. breakpoint_ops was added initialy for some
catchpoints in 2003. I wasn't around then.
>
> Pedro> + if (tp->thread != -1)
> Pedro> + fprintf_unfiltered (fp, " thread %d", tp->thread);
> Pedro> +
> Pedro> + if (tp->task != 0)
> Pedro> + fprintf_unfiltered (fp, " task %d", tp->task);
> Pedro> +
> Pedro> if (tp->cond_string)
> Pedro> fprintf_unfiltered (fp, " if %s", tp->cond_string);
>
> I don't think this syntax will work for a conditional catchpoint.
> Our Python-based implementation gets this wrong as well. I think you
> need a separate "cond" command in the output.
You're right. It works for breakpoints, but not for other types:
(top-gdb) b main thread 1 if 0
Breakpoint 4 at 0x4572b3: file ../../src/gdb/gdb.c, line 28.
(top-gdb) watch main thread 1 if 0
Junk at end of command.
The `b *0xaddr thread 1 if 0' syntax may not work for
some languages.
I'll post an updated patch, once I update it. :-)
--
Pedro Alves