classpath-patches
[Top][All Lists]
Advanced

[Date Prev][Date Next][Thread Prev][Thread Next][Date Index][Thread Index]

[cp-patches] [RFA/JDWP] IDs


From: Keith Seitz
Subject: [cp-patches] [RFA/JDWP] IDs
Date: Mon, 06 Jun 2005 20:25:26 -0700

Hi,

Okay, this patch is rather large (almost 1,000 lines), but it's all
pretty repetitive stuff. So it shouldn't be nearly as bad as it sounds.
[Please yell if you want it broken up more.]

This patch starts the package gnu.classpath.jdwp.id, which contains
bookkeeping classes for all objects and reference types that are passed
to the debugger.

This patch contains the following classes (in this hierarchy):

JdwpId <-- ObjectId <-- 
{ArrayId,ClassLoaderId,ClassObjectId,StringId,ThreadGroupId,ThreadId}
JdwpId <-- ReferenceTypeId <-- 
{ArrayReferenceTypeId,ClassReferenceTypeId,InterfaceReferenceTypeId}

There are two varieties of IDs: object-like IDs (which are discarded
when the object is garbage collected) and reference type IDs (which are
never discarded).

Obviously the most important classes to peruse are JdwpId, ObjectId, and
ReferenceTypeId, since all the others differ only in calling the base
class constructor.

All IDs passed to the debugger can be passed as "tagged" or "untagged".
Untagged IDs are simply written to the outputstream as a long. "tagged"
IDs are written as a one-byte tag followed by the ID. All object ID
types use "tag" descriptors ('B', 'C', 'L', 'F', etc) and all reference
type tags use "type tag" descriptors (there are only three: class 1,
interface 2, and array 3).

Note that there are several ID types that I have not yet implemented
(most notably FieldId, MethodId, FrameId, Location, and other VM-
specific types).

Comments/questions/concerns?
Keith

ChangeLog
2005-06-06  Keith Seitz  <address@hidden>

        * gnu/classpath/jdwp/id/ArrayId.java: New file.
        * gnu/classpath/jdwp/id/ArrayReferenceTypeId.java: New file.
        * gnu/classpath/jdwp/id/ClassLoaderId.java: New file.
        * gnu/classpath/jdwp/id/ClassObjectId.java: New file.
        * gnu/classpath/jdwp/id/ClassReferenceTypeId.java: New file.
        * gnu/classpath/jdwp/id/InterfaceReferenceTypeId.java: New file.
        * gnu/classpath/jdwp/id/JdwpId.java: New file.
        * gnu/classpath/jdwp/id/ObjectId.java: New file.
        * gnu/classpath/jdwp/id/ReferenceTypeId.java: New file.
        * gnu/classpath/jdwp/id/StringId.java: New file.
        * gnu/classpath/jdwp/id/ThreadGroupId.java: New file.
        * gnu/classpath/jdwp/id/ThreadId.java: New file.








reply via email to

[Prev in Thread] Current Thread [Next in Thread]