Mirror of the gdb mailing list
 help / color / mirror / Atom feed
From: Tom Tromey <tromey@redhat.com>
To: Daniel Jacobowitz <drow@false.org>
Cc: Andrew Haley <aph@redhat.com>, java@gcc.gnu.org, gdb@sources.redhat.com
Subject: Re: Binary Compatibility: debug info for compiled Java programs
Date: Thu, 10 Jun 2004 16:42:00 -0000	[thread overview]
Message-ID: <874qpjbcju.fsf@fleche.redhat.com> (raw)
In-Reply-To: <20040610163718.GA24803@nevyn.them.org>

>>>>> "Daniel" == Daniel Jacobowitz <drow@false.org> writes:

>> In our BC ABI, we add a new level of indirection.  So, a field lookup
>> isn't just *(object+offset), but instead *(object+otable[index]),
>> where the otable ("offset table") is computed at class initialization
>> time.

Daniel> I still don't see how this mechanism implements the above principle,
Daniel> i.e. converting symbolic field names to offsets; is the otable
Daniel> associated with the object doing the access or with the objet defining
Daniel> the class?

The otable is associated with the class that is doing the access.
So if the implementation of class Foo refers to a method C.m(), then
the otable for Foo will have an entry "C.m" (with type signature, and
maybe some other stuff).

The symbols in the otable (and actually I've been using shorthand
here, we have a second "atable" for addresses as well -- same
difference though) are resolved when the class ("Foo") is linked.  In
Java this is done at runtime, the JVM Spec (and perhaps the JLS) has
information on the precise steps involved in class preparation and
initialization.

Tom


  reply	other threads:[~2004-06-10 16:42 UTC|newest]

Thread overview: 23+ messages / expand[flat|nested]  mbox.gz  Atom feed  top
2004-06-09 12:15 Andrew Haley
2004-06-09 13:09 ` Daniel Jacobowitz
2004-06-09 13:19   ` Andrew Haley
2004-06-09 13:29     ` Daniel Jacobowitz
2004-06-09 13:39       ` Andrew Haley
2004-06-09 22:17         ` Daniel Jacobowitz
2004-06-09 22:37           ` Tom Tromey
2004-06-10 16:37             ` Daniel Jacobowitz
2004-06-10 16:42               ` Tom Tromey [this message]
2004-06-10 16:47                 ` Ian Lance Taylor
2004-06-10 16:58                   ` Andrew Haley
2004-06-10 17:12                     ` Ian Lance Taylor
2004-06-10 17:25                       ` Andrew Haley
2004-06-10 16:44               ` Andrew Haley
2004-06-10 16:54                 ` Daniel Jacobowitz
2004-06-09 14:13 ` Per Bothner
2004-06-09 14:20   ` Andrew Haley
2004-06-09 20:46 ` Anthony Green
2004-06-09 21:26   ` Andrew Cagney
2004-06-09 22:11     ` Anthony Green
2004-06-11 13:04     ` Andrew Haley
2004-06-11 15:11       ` Andrew Cagney
2004-06-11 15:17         ` Andrew Haley

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=874qpjbcju.fsf@fleche.redhat.com \
    --to=tromey@redhat.com \
    --cc=aph@redhat.com \
    --cc=drow@false.org \
    --cc=gdb@sources.redhat.com \
    --cc=java@gcc.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