This is the mail archive of the
dwarf2@corp.sgi.com
mailing list for the dwarf2 project.
Java issues for DWARF
- To: "Burton, Felix" <fb at ddi dot com>
- Subject: Java issues for DWARF
- From: David Weatherford <david dot weatherford at sun dot com>
- Date: Thu, 20 Apr 2000 15:07:09 -0700
- Cc: dwarf SIG <dwarf2 at corp dot sgi dot com>
- Organization: Sun Microsystems
- References: <23D782631FEAD311950C00508B65DB2905C1A8@exch-us-02.isi.com>
- Reply-To: David Weatherford <david dot weatherford at sun dot com>
Felix,
Since you "volunteered" to write up a summary of Java issues,
I thought I'd send you my list and let you incorporate it. You've
probably thought of all these already, but....
Type Modifiers
abstract
final
extends
implements
Data Member Modifiers
final
transient
Method Modifiers
abstract
final
native
synchronized
Other Concepts
package
inner class
synchronized block
static initializer
object initializers
anonymous class
A quick summary of my thoughts on these:
Add "abstract_type" and "final_type" TAGs (see section 5.2).
"extends" and "implements" can be described using TAG_inheritance.
"final" members will have an AT_const_value attribute.
Add "transient" flag AT for class members (5.5.4).
Add "abstract", "final", "native", and "synchronized" flag ATs for
member functions (5.5.5).
Add a "package" TAG that can contain other packages, classes, and
interfaces (add a section 3.3, "Packages").
For "inner classes", I think the current draft is sufficient.
Add a new section 3.8 describing a new "synchronized_block" TAG.
It will own a TAG_variable that describes an artificial
object with the appropriate type and the location of the result of the
expression which computes the variable whose lock is being acquired.
(A "synchronized" statement takes an expression that evaluates to a
reference.) It will also own a lexical block for the code segment
being synchronized. (This may not be necessary for the correct
implementation of a Java debugger. I need to think about it some more.)
For the static initializer of a class, add a section 5.5.8 that
permits a class type to own a lexical block which is the static
initializer of the class. The block will have an AT_name of "static".
For object initializers, add a section 5.5.9 that permits a class type
to own zero or more unnamed lexical blocks which constitute the
object initializer.
For anonymous classes, the current draft is sufficient.
Hope this helps!
Dave W.
--
Dave Weatherford Forte Tools
David.Weatherford@Sun.COM Sun Microsystems, Inc.
begin:vcard
n:Weatherford;David
tel;work:650 786-8942
x-mozilla-html:TRUE
org:Sun Microsystems, Inc.;Forte Tools
version:2.1
email;internet:David.Weatherford@Sun.COM
title:<img src="http://xidus.net/~weath/weath-small.gif"><br>Staff Engineer
adr;quoted-printable:;;901 San Antonio Road=0D=0AMS UMPK16-305;Palo Alto;CA;94303;
x-mozilla-cpt:;-8304
fn:David Weatherford
end:vcard