From: Stan Shebs <stan@codesourcery.com>
To: tromey@redhat.com
Cc: Stan Shebs <stan@codesourcery.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH] Conditional tracepoints
Date: Mon, 29 Jun 2009 20:58:00 -0000 [thread overview]
Message-ID: <4A492AF4.8080109@codesourcery.com> (raw)
In-Reply-To: <m34otzatex.fsf@fleche.redhat.com>
Tom Tromey wrote:
>>>>>> "Stan" == Stan Shebs <stan@codesourcery.com> writes:
>>>>>>
>
> Stan> This patch adds conditional tracepoints. Tracepoint conditions work
> Stan> by being compiled into agent expressions that actually evaluate on the
> Stan> spot in the target, rather than collecting blocks of trace data.
>
> Very cool.
>
> Now I'm wondering if we could use agent expressions for conditional
> breakpoints somehow :-)
>
Certainly jimb didn't want to restrict agent expressions to just
tracepoints. The messy part would be getting from trap hit to evaluator,
since the usual native debugging arrangement gives control back to GDB
right away. I suppose there is still a performance win if GDB does the
effective equivalent of an inferior call to the evaluator after the trap
is hit, 2-3 roundtrips is still better than 10-100.
> Stan> As usual for tracepoints, GDB proper doesn't have to do much,
> Stan> and most of the code here revolves around checking for the
> Stan> "ConditionalTracepoints" feature, so as to maintain
> Stan> compatibility with the two(?) existing tracepoint
> Stan> implementations out there.
>
> Are either of these free software?
>
Yes, I was thinking of Nicholas McGuire's work, and Jim's Trac project.
Probably no one would notice in real life, but I couldn't quite bring
myself to make incompatible protocol changes without adding a feature
test...
> Stan> +
> Stan> + struct agent_expr *
> Stan> + gen_eval_for_expr (CORE_ADDR scope, struct expression *expr)
>
> Could use a header comment.
>
I agree. :-)
> Stan> Index: tracepoint.c
> [...]
> Stan> + extern int remote_supports_cond_tracepoints (void);
>
> This seems fishy to me.
>
> At the very least I think this should be in a header, not in the .c
> file. But... other cases like this seem to be expressed via target
> methods, not as direct calls into remote.c.
>
I beg a little indulgence for the moment - the massive target vector
change is coming in about ten patches or so. Since it touches everything
in tracepoint.c, patches from before that change wouldn't even start to
apply, so I'm recapitulating the order in which I wrote the pieces. In
the process, we'll be seeing lots of places where the tracepoint code
knows too much about the remote protocol code.
Stan
next prev parent reply other threads:[~2009-06-29 20:58 UTC|newest]
Thread overview: 8+ messages / expand[flat|nested] mbox.gz Atom feed top
2009-06-27 5:31 Stan Shebs
2009-06-27 12:55 ` Eli Zaretskii
2009-06-29 20:29 ` Stan Shebs
2009-06-30 3:06 ` Eli Zaretskii
2009-06-29 16:38 ` Tom Tromey
2009-06-29 20:58 ` Stan Shebs [this message]
2009-06-29 21:50 ` Tom Tromey
2009-07-14 23:29 ` Stan Shebs
Reply instructions:
You may reply publicly to this message via plain-text email
using any one of the following methods:
* Save the following mbox file, import it into your mail client,
and reply-to-all from there: mbox
Avoid top-posting and favor interleaved quoting:
https://en.wikipedia.org/wiki/Posting_style#Interleaved_style
* Reply using the --to, --cc, and --in-reply-to
switches of git-send-email(1):
git send-email \
--in-reply-to=4A492AF4.8080109@codesourcery.com \
--to=stan@codesourcery.com \
--cc=gdb-patches@sourceware.org \
--cc=tromey@redhat.com \
/path/to/YOUR_REPLY
https://kernel.org/pub/software/scm/git/docs/git-send-email.html
* If your mail client supports setting the In-Reply-To header
via mailto: links, try the mailto: link
Be sure your reply has a Subject: header at the top and a blank line
before the message body.
This is a public inbox, see mirroring instructions
for how to clone and mirror all data and code used for this inbox