From: Tom Tromey <tromey@redhat.com>
To: Jan Kratochvil <jan.kratochvil@redhat.com>
Cc: Sergio Durigan Junior <sergiodj@redhat.com>, gdb-patches@sourceware.org
Subject: Re: [PATCH 2/3] Implement new features needed for handling SystemTap probes
Date: Mon, 12 Mar 2012 20:37:00 -0000 [thread overview]
Message-ID: <87obs1o8ry.fsf@fleche.redhat.com> (raw)
In-Reply-To: <20120310192054.GA27097@host2.jankratochvil.net> (Jan Kratochvil's message of "Sat, 10 Mar 2012 20:20:54 +0100")
>>>>> "Jan" == Jan Kratochvil <jan.kratochvil@redhat.com> writes:
Thanks for the thorough and detailed review. I have a few comments.
Jan> I believe there was intended some abstraction, more talked about it
Jan> elsewhere, breakpoint.c should only include some (nonexistent)
Jan> "probe.h", not "stap-probe.h".
What did you have in mind?
In the abstract, my concern about adding abstraction is that we aren't
sure it would be good for anything. Then we can wind up with an
over-engineered solution.
But, this is an abstract concern; perhaps your idea is not susceptible
to this.
>> + /* Swallow errors. */
Jan> Could here be a reason why it is valid?
>> + target_write_memory (address, bytes, TYPE_LENGTH (type));
Jan> And here again, why not to check errors?
I think we should warn.
Originally I thought there was just nothing sensible to do if we got an
error, but warning is better than silently ignoring it.
Jan> Here you leak PROV_PAT, PROBE_PAT and OBJ_PAT.
No, compile_rx_or_error makes a cleanup.
>> + return result;
>> +}
>> +
>> +/* A qsort comparison function for stap_entry objects. */
>> +
>> +static int
>> +compare_entries (const void *a, const void *b)
>> +{
>> + const stap_entry *ea = a;
>> + const stap_entry *eb = b;
>> + int v;
>> +
>> + v = strcmp (ea->probe->provider, eb->probe->provider);
Jan> handle_probe can create NULL probe->provider or NULL probe->name etc. But
Jan> other code like this one will crash on it.
Jan> I believe such non-valid probes rather should be dropped during parsing.
I agree.
Jan> Moreover I would still more see to drop [patch 1/3], call just
Jan> compute_probe_arg which returns lazy lval_computed struct value *
Jan> which provides new struct lval_funcs member which can return
Jan> `struct expression *' and generic code can call gen_expr on its
Jan> own. There is no need for special
Jan> internalvar_funcs-> compile_to_ax member.
This is a relic of an earlier implementation, which had two different
code paths.
Putting this into lval_funcs seems very roundabout to me. First, it
means computing a value in the middle of compiling to AX. But, when
compiling to AX we are not generally computing values. The probe
argument might not even be valid at the time at which AX compilation is
done. And, this means that we must always return a special computed
value for all probe arguments, just to make compilation work. All these
gyrations provide no extra benefit, though. Simply asking the
internalvar for an expression is simpler all around.
We could change the new method to return an expression; this doesn't
seem vital to me since it isn't used anywhere else, but I find it a
valid aesthetic choice.
Tom
next prev parent reply other threads:[~2012-03-12 20:37 UTC|newest]
Thread overview: 27+ messages / expand[flat|nested] mbox.gz Atom feed top
2012-03-09 20:29 [PATCH 0/3] Implement support for SystemTap probes on userspace Sergio Durigan Junior
2012-03-09 20:32 ` [PATCH 1/3] Refactor internal variable mechanism Sergio Durigan Junior
2012-03-09 21:03 ` Tom Tromey
2012-03-10 4:02 ` Sergio Durigan Junior
2012-03-09 20:34 ` [PATCH 2/3] Implement new features needed for handling SystemTap probes Sergio Durigan Junior
2012-03-10 8:38 ` Eli Zaretskii
2012-03-10 16:56 ` Mark Kettenis
2012-03-12 15:11 ` Tom Tromey
2012-03-13 8:58 ` Mark Kettenis
2012-03-13 16:06 ` Sergio Durigan Junior
2012-03-15 20:44 ` Tom Tromey
2012-03-16 14:52 ` Mark Kettenis
2012-03-16 18:17 ` Tom Tromey
2012-03-10 19:22 ` Jan Kratochvil
2012-03-12 20:37 ` Tom Tromey [this message]
2012-03-12 23:15 ` Jan Kratochvil
2012-03-15 15:40 ` Pedro Alves
2012-03-15 15:36 ` Pedro Alves
2012-03-15 20:50 ` Tom Tromey
2012-03-09 20:34 ` [PATCH 3/3] Use longjmp and exception probes when available Sergio Durigan Junior
2012-03-09 21:15 ` [PATCH 0/3] Implement support for SystemTap probes on userspace Tom Tromey
2012-03-10 3:51 ` Sergio Durigan Junior
2012-03-10 7:55 ` Eli Zaretskii
2012-03-10 8:55 ` Jan Kratochvil
2012-03-10 9:06 ` Eli Zaretskii
2012-03-10 15:52 ` Sergio Durigan Junior
2012-03-12 19:59 ` Tom Tromey
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=87obs1o8ry.fsf@fleche.redhat.com \
--to=tromey@redhat.com \
--cc=gdb-patches@sourceware.org \
--cc=jan.kratochvil@redhat.com \
--cc=sergiodj@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