From: Daniel Jacobowitz <drow@false.org>
To: Mark Kettenis <kettenis@gnu.org>
Cc: gdb-patches@sources.redhat.com
Subject: Re: [RFC] Use target vector inheritance for GNU/Linux
Date: Mon, 06 Dec 2004 14:43:00 -0000 [thread overview]
Message-ID: <20041206144125.GA14232@nevyn.them.org> (raw)
In-Reply-To: <200412061410.iB6EAgpA019134@juw15.nfra.nl>
On Mon, Dec 06, 2004 at 03:10:42PM +0100, Mark Kettenis wrote:
> A new function, linux_target, is added to linux-nat.c. Then any GNU/Linux
> target can call it, and pass the result to add_target - after specializing
> whatever methods it needs to. Sometimes it's necessary to specialize a
> method between inf_ptrace_target and linux_target, so it accepts an optional
> argument.
>
> Yes, indeed, in particual the way the various Linux ports deal with
> reading and writing registers is really different.
>
> This wouldn't be necessary if all target methods took a
> target_ops parameter, so they could call the overridden method.
>
> I don't think so. The target_ops parameter is intended to provide a
> way for strata to "inherit" stuff from other strata (i.e. the
> core_stratum inheriting the to_xfer_partial method from the
> file_stratum). Here we're talking about inheriting stuff from a
> prototype vector within a single stratum.
Right now the only thing I need this for is to find a method in this
target and stratum. i386-linux-nat.c provides to_resume, and
linux-nat.c used to call child_resume directly (because it can't use
target_resume, which would go through thread-db and back to linux-nat
again). So I have to somehow pass the pointer to the i386 resume to
linux-nat.c, and this seemed like the right way.
So from a short-term, literal perspective, what I wrote is correct: the
only reason that there is a target_ops argument to linux_target would
be unnecessary if there were more target methods that took their own
target_ops argument.
Long-term, with the target_ops arguments added, I'm really not sure.
The only difference would be whether the i386-linux version calls or is
called by the generic GNU/Linux version; and for all the examples I've
looked at, it doesn't matter.
> I've tested this patch with the full testsuite on x86_64-linux and
> i386-linux, partial testsuite on ia64-linux [it gets hung up in an
> infinite loop in sigaltstack.exp with or without the patch], and smoke
> testing on s390x [the machine I was using didn't have expect].
>
> I'll try to test & cleanup sparc and possibly sparc64.
Thank you very much! Randolph has also tested hppa-linux for me.
> Comments? Proofreading? I'm going to let this sit for a couple of days,
> because (while mechanical) it's very large - I think I got everything, but
> since I don't have the resources to test on every single GNU/Linux native
> target, I can't be sure.
>
> I'm just wondering whether the saved_xxx variables should be called
> linux_saved_xxx instead. Probably not...
Possibly, by analogy to the methods using them. I can rename if you'd
prefer.
--
Daniel Jacobowitz
next prev parent reply other threads:[~2004-12-06 14:41 UTC|newest]
Thread overview: 12+ messages / expand[flat|nested] mbox.gz Atom feed top
2004-12-05 18:48 Daniel Jacobowitz
2004-12-06 14:41 ` Mark Kettenis
2004-12-06 14:43 ` Daniel Jacobowitz [this message]
2004-12-12 17:53 ` Andrew Cagney
2004-12-12 17:59 ` Andrew Cagney
2004-12-12 21:45 ` Mark Kettenis
2004-12-13 20:45 ` Andrew Cagney
2004-12-13 22:29 ` Mark Kettenis
2004-12-13 22:57 ` Andrew Cagney
2004-12-14 2:06 ` Mark Kettenis
2004-12-14 15:41 ` Andrew Cagney
2004-12-15 0:07 ` Mark Kettenis
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=20041206144125.GA14232@nevyn.them.org \
--to=drow@false.org \
--cc=gdb-patches@sources.redhat.com \
--cc=kettenis@gnu.org \
/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