This is the mail archive of the
gdb-patches@sourceware.org
mailing list for the GDB project.
RE: [rfc] btrace: control memory access during replay
- From: "Metzger, Markus T" <markus dot t dot metzger at intel dot com>
- To: Pedro Alves <palves at redhat dot com>, Eli Zaretskii <eliz at gnu dot org>
- Cc: "jan dot kratochvil at redhat dot com" <jan dot kratochvil at redhat dot com>, "gdb-patches at sourceware dot org" <gdb-patches at sourceware dot org>
- Date: Tue, 20 May 2014 07:00:30 +0000
- Subject: RE: [rfc] btrace: control memory access during replay
- Authentication-results: sourceware.org; auth=none
- References: <1396601781-25010-1-git-send-email-markus dot t dot metzger at intel dot com> <8361mpa1z9 dot fsf at gnu dot org> <A78C989F6D9628469189715575E55B230C148832 at IRSMSX104 dot ger dot corp dot intel dot com> <8338hta0hm dot fsf at gnu dot org> <53738D3E dot 60606 at redhat dot com> <A78C989F6D9628469189715575E55B230C16E420 at IRSMSX104 dot ger dot corp dot intel dot com> <537A42D9 dot 6060006 at redhat dot com>
> -----Original Message-----
> From: Pedro Alves [mailto:palves@redhat.com]
> Sent: Monday, May 19, 2014 7:44 PM
> To: Metzger, Markus T; Eli Zaretskii
> >> What's the likelihood of another variant appearing? That is,
> >> I'm mildly wondering if it should be an enum from the get go:
> >>
> >> set record btrace replay-memory-access read-only|read-write|...|...
> >
> > I don't see another variant right now but I also don't see why it
> > shouldn't be an enum.
>
> The kind of variant I was considering was disabling the fallback
> of reading read only regions as tagged in the binary from live/core
> memory. But maybe btrace gets completely useless that way.
> If we can't think of another useful variant, then I'm fine with
> a boolean, if it sounds more natural. Your choice.
We must be able to read code sections. Without that, btrace
will not work.
One more option that I can think of is reading from object
files.
I'll use an enum for the sake of flexibility.
> Hmm. I didn't think btrace could work with core files,
> unlike record full? Are you adding support for dumping/restoring
> the btrace like "record save" does?
At the moment it can't. I plan to add core file support, though.
Regards,
Markus.
> >> On 04/04/2014 10:48 AM, Eli Zaretskii wrote:
> >
> >>>>> Other than that, the documentation parts are approved. However, I
> >>>>> wonder whether "allow-memory-access" is a good name for a setting
> >>>>> which actually allows access to writable portion of the memory. IOW,
> >>>>> even when the value is OFF, we do allow access to memory, just not
> the
> >>>>> writable portion of it.
> >>>>
> >>>> Agreed; allow-access-to-writable-memory-while-replaying is a bit long,
> >> though.
> >>>
> >>> How about access-writable-memory?
> >>
> >> Sounds fine to me.
> >>
> >> What's the likelihood of another variant appearing? That is,
> >> I'm mildly wondering if it should be an enum from the get go:
> >>
> >> set record btrace replay-memory-access read-only|read-write|...|...
> >
> > I don't see another variant right now but I also don't see why it
> > shouldn't be an enum.
>
> The kind of variant I was considering was disabling the fallback
> of reading read only regions as tagged in the binary from live/core
> memory. But maybe btrace gets completely useless that way.
> If we can't think of another useful variant, then I'm fine with
> a boolean, if it sounds more natural. Your choice.
>
> >> I also got a little confused with:
> >>
> >> "The accessed memory corresponds to the end of the recorded
> >> execution trace."
> >>
> >> Maybe we should say "live program" instead ?
> >
> > Would "live program" still be OK for core files?
>
> Hmm. I didn't think btrace could work with core files,
> unlike record full? Are you adding support for dumping/restoring
> the btrace like "record save" does?
>
> >> I actually didn't see anything in the patch that actually makes the
> >> setting work.
> >
> > The patch is using an existing variable to guard writable memory
> > access. We already allow write-access for breakpoints during
> > replay. This patch is now adding a CLI for the guard variable.
>
> Ah. Thanks.
>
> >> Also, please install a show hook in the command, so that i18n
> >> can work.
> >
> > I'm using the default set/show functions with _("") descriptions
> > for both set and show. Isn't that enough for i18n?
>
> Nope. See deprecated_show_value_hack:
>
> /* Print doc minus "show" at start. */
> print_doc_line (gdb_stdout, c->doc + 5);
>
> That can only work in English.
>
> >
> > In case it isn't, would I need a set function, as well?
>
> Nope, just the show function is enough.
>
> --
> Pedro Alves
Intel GmbH
Dornacher Strasse 1
85622 Feldkirchen/Muenchen, Deutschland
Sitz der Gesellschaft: Feldkirchen bei Muenchen
Geschaeftsfuehrer: Christian Lamprechter, Hannes Schwaderer, Douglas Lusk
Registergericht: Muenchen HRB 47456
Ust.-IdNr./VAT Registration No.: DE129385895
Citibank Frankfurt a.M. (BLZ 502 109 00) 600119052