This is the mail archive of the dwarf2@corp.sgi.com mailing list for the dwarf2 project.


Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]

Java issues for DWARF


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

Index Nav: [Date Index] [Subject Index] [Author Index] [Thread Index]
Message Nav: [Date Prev] [Date Next] [Thread Prev] [Thread Next]