From: Andrew Cagney <ac131313@cygnus.com>
To: Jim Blandy <jimb@cygnus.com>
Cc: Michael Snyder <msnyder@cygnus.com>, gdb-patches@sources.redhat.com
Subject: Re: [RFC/RFA] gdb extension for Harvard architectures
Date: Wed, 10 Oct 2001 00:45:00 -0000 [thread overview]
Message-ID: <3BC3FC63.8010407@cygnus.com> (raw)
In-Reply-To: <npsnd0mhwp.fsf@zwingli.cygnus.com>
>> > Those set off warning bells, for me. You can special-case this stuff
>> > to make the naive user's behavior do the right thing want all you
>> > want. If you've ever had Microsoft Word correct your capitalization
>> > or automatically munge your paragraph formatting, you know what the
>> > resulting systems feel like to use.
>
>>
>> Have a look at the way GDB vs GCC implements ``func + 4'' for AIX. We
>> do this now.
>
>
> And indeed, that discrepancy is undesirable, right? We should not
> introduce more.
To be honest, I think GCC has a bug. In the case of AIX it is
implementing meaningless behavour by accident. I think GCC, if nothing
else, should issue a warning.
To expand on the problem, (kevin correctly me if I'm wrong). AIX has
function descriptors and a C function pointer designates a descriptor
(in data space) and not the code of the function. Thus, what to the C
programmer looks like (to use pseudo pascal syntax):
pointer to function
is implemented as:
pointer to record
pointer to function;
pointer to table_of_contents;
pointer to something else;
end
When GCC encounters:
function + 1
it implements
&function + 1
Remembering that a function pointer points to a record/struct in data
space (and not the actual function) the above ends up pointing to what
ever lies beyond the function descriptor in data memory.
GDB on the other hand implements the above as
function+1
(i.e. the second byte (should it be word?) of function's code).
Anyway, my point here is that I don't think GCC should be held up as the
reference implementation. Just like in GDB, I suspect GCC has edge
cases that no one has thought through.
enjoy,
Andrew
next prev parent reply other threads:[~2001-10-10 0:45 UTC|newest]
Thread overview: 60+ messages / expand[flat|nested] mbox.gz Atom feed top
2001-09-28 13:07 Michael Snyder
2001-09-28 13:50 ` Andrew Cagney
2001-10-03 10:41 ` Michael Snyder
2001-10-03 11:06 ` Daniel Jacobowitz
2001-10-03 11:12 ` Michael Snyder
2001-10-03 11:19 ` Andrew Cagney
2001-10-03 11:49 ` Michael Snyder
2001-10-03 14:38 ` Andrew Cagney
2001-10-03 14:14 ` Jim Blandy
2001-10-03 14:31 ` Andrew Cagney
2001-10-03 16:14 ` Jim Blandy
2001-10-04 11:44 ` Michael Snyder
2001-10-04 16:28 ` Jim Blandy
2001-09-28 17:15 ` Andrew Cagney
2001-09-28 17:44 ` Andrew Cagney
2001-10-02 12:59 ` Jim Blandy
2001-10-02 14:13 ` Andrew Cagney
2001-10-02 15:09 ` Michael Snyder
2001-10-02 16:58 ` Andrew Cagney
2001-10-03 10:10 ` Jim Blandy
2001-10-03 12:22 ` Andrew Cagney
2001-10-03 15:08 ` Jim Blandy
2001-10-10 0:56 ` Andrew Cagney
2001-10-09 23:34 ` Andrew Cagney
2001-10-10 10:53 ` Jim Blandy
2001-10-10 11:17 ` Andrew Cagney
2001-10-10 12:15 ` Jim Blandy
2001-10-10 12:31 ` Andrew Cagney
2001-10-10 0:16 ` Andrew Cagney
2001-10-03 11:11 ` Michael Snyder
2001-10-04 12:08 ` Michael Snyder
2001-10-04 13:13 ` Andrew Cagney
2001-10-08 10:36 ` Michael Snyder
2001-10-10 1:25 ` Andrew Cagney
2001-11-05 11:34 ` Michael Snyder
2001-10-02 16:14 ` Jim Blandy
2001-10-02 17:16 ` Andrew Cagney
2001-10-02 17:31 ` Michael Snyder
2001-10-02 19:09 ` Andrew Cagney
2001-10-03 12:41 ` Jim Blandy
2001-10-03 12:52 ` Andrew Cagney
2001-10-03 16:13 ` Jim Blandy
2001-10-03 16:51 ` Frank Ch. Eigler
2001-10-03 10:55 ` Michael Snyder
2001-10-03 11:06 ` Andrew Cagney
2001-10-03 11:51 ` Michael Snyder
2001-10-03 12:17 ` Andrew Cagney
2001-10-03 16:54 ` Michael Snyder
2001-10-03 14:33 ` Jim Blandy
2001-10-03 14:44 ` Andrew Cagney
2001-10-03 16:17 ` Jim Blandy
2001-10-04 13:16 ` Andrew Cagney
2001-10-10 0:45 ` Andrew Cagney [this message]
2001-10-10 10:56 ` Jim Blandy
2001-10-03 14:48 ` Andrew Cagney
2001-10-04 11:49 ` Michael Snyder
2001-10-03 10:49 ` Michael Snyder
2001-09-29 2:29 ` Eli Zaretskii
2001-10-02 19:27 ` Andrew Cagney
2001-10-03 14:04 ` Jim Blandy
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=3BC3FC63.8010407@cygnus.com \
--to=ac131313@cygnus.com \
--cc=gdb-patches@sources.redhat.com \
--cc=jimb@cygnus.com \
--cc=msnyder@cygnus.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