Mirror of the gdb-patches mailing list
 help / color / mirror / Atom feed
From: Michael Eager <eager@eagerm.com>
To: Pedro Alves <palves@redhat.com>
Cc: "Maciej W. Rozycki" <macro@codesourcery.com>,
	 "gdb-patches@sourceware.org" <gdb-patches@sourceware.org>
Subject: Re: MIPS Linux signals
Date: Tue, 22 May 2012 15:40:00 -0000	[thread overview]
Message-ID: <4FBBB352.6080009@eagerm.com> (raw)
In-Reply-To: <4FBB67AE.5090807@redhat.com>

On 05/22/2012 03:17 AM, Pedro Alves wrote:

> I agree that the current naming is confusing, but I'll point out why I think
> target_signal_from_host is actually correct, and then conclude with renaming
> suggestions to avoid the confusion, and fix the naming of the gdbarch hook, which
> I think is not correct.  We have
>
> enum target_signal
> {
> ...
>    TARGET_SIGNAL_FOO,
>    TARGET_SIGNAL_BAR,
> ...
> };
>
> which represents GDB's internal signal numbers.AFAIK, the "target_" prefix
> naming in this case is just a natural choice, given that that's how we name
> everything behind the target_ops abstraction -- target_read_memory,
> target_resume, etc., etc. (target.h) -- the mechanism that is mostly about
> abstracting the details of handling the target's debug interface API.

As you say, these are GDB's internal values.  They are not the values used on
(some) targets.   They are not the values used by (some) host systems either.

There's a difference between target_read_memory() which actually reads a
value from the memory on the target, and target_signal which is not the
value from the target, but a translated internal value.

> So this explains the "target_signal_from_" part of the function's signature.

Not for me.  :-)

> The "from_host" part is really correct: this really is a host function -- think in
> terms of autoconf's notion of build vs host vs target.  It only makes sense to call
> it in native code (native == host).  And in fact, that's what happens.

GDB tends to muddle host and target.  Or perhaps the confusion is between the
host environment and GDB's internal data structures.

There is no need to translate signal numbers from the host system environment
to the target system environment.  There is a need to translate from GDB's internal
numbering to the target numbering, and vice versa.  There is nothing significant
about the host's signal numbering that should affect how GDB works with the target,
whether the target is a native process, remote system, or core file.

When target=host, translating from the target's signal numbering to GDB's
internal numbering should be identical to the case when target!=host.

target_signal_from_host() makes no sense to me.  I don't have a host core
file; it's a target core file.

> gdbserver is always native, so always host.

That's the exception.  But that should still use the target to/from internal
translation function.

> enum target_signal =>  enum gdb_signal
>
> target_signal_from_host =>  gdb_signal_from_host (or gdb_signal_from_host_signal)
> target_signal_to_host =>  gdb_signal_to_host (or gdb_signal_to_host_signal)
>
> gdbarch_target_signal_from_host =>  gdbarch_gdb_signal_from_target (or gdbarch_gdb_signal_from_target_signal)
> gdbarch_target_signal_to_host =>  gdbarch_gdb_signal_to_target (or gdbarch_gdb_signal_to_target_signal)

OK, but I'd recommend
   target_signal_from_host =>  gdb_signal_from_target
   target_signal_to_host =>  gdb_signal_to_target

This is symmetric with the gdbarch_ functions and clear that the function
translates to/from target system values, not the host system.

-- 
Michael Eager	 eager@eagercon.com
1960 Park Blvd., Palo Alto, CA 94306  650-325-8077


  parent reply	other threads:[~2012-05-22 15:40 UTC|newest]

Thread overview: 29+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2012-05-20  2:03 Michael Eager
2012-05-21 11:04 ` Pedro Alves
2012-05-21 14:51   ` Michael Eager
2012-05-21 17:37     ` Pedro Alves
2012-05-21 18:06       ` Michael Eager
2012-05-21 18:19 ` Maciej W. Rozycki
     [not found] ` <alpine.DEB.1.10.1205211232260.11227@tp.orcam.me.uk>
2012-05-21 18:21   ` Michael Eager
2012-05-21 22:34     ` Maciej W. Rozycki
2012-05-22  9:38       ` Pedro Alves
2012-05-21 21:35 ` Pedro Alves
2012-05-21 21:53   ` Michael Eager
2012-05-21 22:48     ` Maciej W. Rozycki
2012-05-22  0:16       ` Michael Eager
2012-05-22 10:17       ` Pedro Alves
2012-05-22 13:16         ` Maciej W. Rozycki
2012-05-22 13:32           ` Pedro Alves
2012-05-22 15:10         ` Move store_waitstatus to inf-child.c (was: Re: MIPS Linux signals) Pedro Alves
2012-05-22 15:40         ` Michael Eager [this message]
2012-05-22 16:02           ` MIPS Linux signals Pedro Alves
2012-05-22 18:14             ` Michael Eager
2012-05-22 18:31               ` Pedro Alves
2012-05-22 19:32                 ` Michael Eager
2012-05-22 22:06                   ` Pedro Alves
2012-05-22 16:26         ` Pedro Alves
2012-05-22 10:58       ` Pedro Alves
2012-05-22 19:31         ` Aleksandar Ristovski
2012-05-22 21:55           ` Pedro Alves
2012-05-22 23:29             ` Aleksandar Ristovski
2012-05-23 11:39               ` Pedro Alves

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=4FBBB352.6080009@eagerm.com \
    --to=eager@eagerm.com \
    --cc=gdb-patches@sourceware.org \
    --cc=macro@codesourcery.com \
    --cc=palves@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