Skip to content
/ jdwp Public

A generic JDWP protocol implementation

Notifications You must be signed in to change notification settings

necauqua/jdwp

Repository files navigation

jdwp

This is a generic JDWP protocol implementation.

It only provides the base types and encoding/decoding traits.

Also contains a dumb simple blocking JDWP client implementation.

Currently work in progress.

Planned:

  • Implement all the commands (currently ~half)
  • Cover everything with tests (currently very little, but the setup is there) - there are definitely human errors in this.
  • Async client?.

MSRV is 1.66.1

JDWP commands implemented:

  • VirtualMachine Command Set (1)

    • Version (1)
    • ClassesBySignature (2)
    • AllClasses (3)
    • AllThreads (4)
    • TopLevelThreadGroups (5)
    • Dispose (6)
    • IDSizes (7)
    • Suspend (8)
    • Resume (9)
    • Exit (10)
    • CreateString (11)
    • Capabilities (12)
    • ClassPaths (13)
    • DisposeObjects (14)
    • HoldEvents (15)
    • ReleaseEvents (16)
    • CapabilitiesNew (17)
    • RedefineClasses (18)
    • SetDefaultStratum (19)
    • AllClassesWithGeneric (20)
    • InstanceCounts (21)
  • ReferenceType Command Set (2)

    • Signature (1)
    • ClassLoader (2)
    • Modifiers (3)
    • Fields (4)
    • Methods (5)
    • GetValues (6)
    • SourceFile (7)
    • NestedTypes (8)
    • Status (9)
    • Interfaces (10)
    • ClassObject (11)
    • SourceDebugExtension (12)
    • SignatureWithGeneric (13)
    • FieldsWithGeneric (14)
    • MethodsWithGeneric (15)
    • Instances (16)
    • ClassFileVersion (17)
    • ConstantPool (18)
  • ClassType Command Set (3)

    • Superclass (1)
    • SetValues (2)
    • InvokeMethod (3)
    • NewInstance (4)
  • ArrayType Command Set (4)

    • NewInstance (1)
  • InterfaceType Command Set (5)

  • Method Command Set (6)

    • LineTable (1)
    • VariableTable (2)
    • Bytecodes (3)
    • IsObsolete (4)
    • VariableTableWithGeneric (5)
  • Field Command Set (8)

  • ObjectReference Command Set (9)

    • ReferenceType (1)
    • GetValues (2)
    • SetValues (3)
    • MonitorInfo (5)
    • InvokeMethod (6)
    • DisableCollection (7)
    • EnableCollection (8)
    • IsCollected (9)
    • ReferringObjects (10)
  • StringReference Command Set (10)

    • Value (1)
  • ThreadReference Command Set (11)

    • Name (1)
    • Suspend (2)
    • Resume (3)
    • Status (4)
    • ThreadGroup (5)
    • Frames (6)
    • FrameCount (7)
    • OwnedMonitors (8)
    • CurrentContendedMonitor (9)
    • Stop (10)
    • Interrupt (11)
    • SuspendCount (12)
    • OwnedMonitorsStackDepthInfo (13)
    • ForceEarlyReturn (14)
  • ThreadGroupReference Command Set (12)

    • Name (1)
    • Parent (2)
    • Children (3)
  • ArrayReference Command Set (13)

    • Length (1)
    • GetValues (2)
    • SetValues (3)
  • ClassLoaderReference Command Set (14)

    • VisibleClasses (1)
  • EventRequest Command Set (15)

    • Set (1)
    • Clear (2)
    • ClearAllBreakpoints (3)
  • StackFrame Command Set (16)

    • GetValues (1)
    • SetValues (2)
    • ThisObject (3)
    • PopFrames (4)
  • ClassObjectReference Command Set (17)

    • ReflectedType (1)
  • Event Command Set (64)

    • Composite (100)

License

This crate is licensed under the MIT license

About

A generic JDWP protocol implementation

Topics

Resources

Stars

Watchers

Forks

Sponsor this project