Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
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


  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