Logo Search packages:      
Sourcecode: xemacs21-packages version File versions

jde::debugger::spec::EventRequestSpec Class Reference

Inheritance diagram for jde::debugger::spec::EventRequestSpec:

jde::debugger::Protocol jde::debugger::spec::BreakpointSpec jde::debugger::spec::ExceptionSpec jde::debugger::spec::WatchpointSpec jde::debugger::spec::LineBreakpointSpec jde::debugger::spec::MethodBreakpointSpec jde::debugger::spec::AccessWatchpointSpec jde::debugger::spec::ModificationWatchpointSpec

List of all members.


Detailed Description

EventRequestSpec.java

A request specification. This is used for watchpoints, exception-catches, and breakpoints, and provides a mechanism for implementing deferral.

The intuition is that the user should be allowed to specify things like breakpoints, even though the corresponding classes haven't been loaded yet.

When the user does a, for example, "break on_line test.Test 42", jdebug tries to find if test.Test has been loaded. If it has, it tries to set the breakpoint, and sends an error on failure.

If, however, no class matching test.Test exists, jdebug places this "spec" in a list, and each time a class is prepared, matches the class with the spec. If the spec matches, it tries to set the breakpoint / watchpoint / exception-catch. If it works, fine, else it sends the error over to jde.

This also allows for neat things like setting breakpoints on source file + line number combinations, since each reference type (given it was compiled with debug info) also contains the source file name in it.

Information that would normally be stuck right into the actual requests, for example a thread filter, is stored in the spec until the time it can resolve the request. At that time, it is set in setRequest.

XXX

Note that as of now, when the doc is being written, there is no way of ascertaining if the user mistyped the referencetype name/pattern, since jdebug will just wait ad infinitum for that class to be prepared.

Created: Thu Jul 15 12:17:34 1999

Author:
Amit Kumar
Since:
0.1

Definition at line 52 of file EventRequestSpec.java.


Public Member Functions

void attemptResolve (ReferenceType refType)
 EventRequestSpec (DebuggeeProcess proc, ReferenceTypeSpec refSpec)
EventRequest getEventRequest ()
Long getID ()
boolean isResolved ()
void setClassExFilters (List filters)
void setClassFilters (List filters)
void setExpression (String expr)
void setIsResolved ()
void setSuspendPolicy (int policy)
void setThread (Object thread)

Static Public Attributes

static final String ATTACH_SHMEM = "attach_shmem"
static final String ATTACH_SOCKET = "attach_socket"
static String BR = System.getProperty("line.separator")
static final String BREAK = "break"
static final String CANCEL_TRACE_CLASSES = "cancel_trace_classes"
static final String CANCEL_TRACE_METHODS = "cancel_trace_methods"
static final String CANCEL_TRACE_THREADS = "cancel_trace_threads"
static final String CLEAR = "clear"
static final String COMMAND_ERROR
static final String COMMAND_RESULT
static final String CONNECTED_TO_VM
static final String DEBUG
static final String ERROR
static final String EVALUATE = "evaluate"
static final String EVENT_BREAKPOINT_HIT
static final String EVENT_CLASS_PREPARE
static final String EVENT_CLASS_UNLOAD
static final String EVENT_EXCEPTION
static final String EVENT_METHOD_ENTRY
static final String EVENT_METHOD_EXIT
static final String EVENT_OTHER
static final String EVENT_STEP_COMPLETED
static final String EVENT_THREAD_DEATH
static final String EVENT_THREAD_START
static final String EVENT_VM_DEATH
static final String EVENT_VM_DISCONNECT
static final String EVENT_VM_START
static final String EVENT_WATCHPOINT_HIT
static final String EVENTSET
static final String EXIT = "exit"
static final Object expressionKey = "expr"
static final String FINISH = "finish"
static final String GET_ARRAY = "get_array"
static final String GET_LOADED_CLASSES = "get_loaded_classes"
static final String GET_LOCALS = "get_locals"
static final String GET_OBJECT = "get_object"
static final String GET_OBJECT_MONITORS = "get_object_monitors"
static final String GET_PATH_INFORMATION = "get_path_information"
static final String GET_STRING = "get_string"
static final String GET_THREAD = "get_thread"
static final String GET_THREADS = "get_threads"
static final String INTERRUPT = "interrupt"
static final String INVALID
static final String JDE_BUG
static final String JDE_INIT_DEBUG_SESSION
static final String KILL_THREAD = "kill_thread"
static final String LAUNCH = "launch"
static final String LISTEN_SHMEM = "listen_shmem"
static final String LISTEN_SOCKET = "listen_socket"
static final String MESSAGE
static final String QUIT = "quit"
static final String REPORT_IDS_IN_USE
static final String RESUME = "resume"
static final String RUN = "run"
static final String SPEC_RESOLVED
static final Object specPropertyKey = "spec"
static final String STEP = "step"
static final String SUSPEND = "suspend"
static final Object threadKey = "thread"
static final String TRACE_CLASSES = "trace_classes"
static final String TRACE_EXCEPTIONS = "trace_exceptions"
static final String TRACE_METHODS = "trace_methods"
static final String TRACE_THREADS = "trace_threads"
static final String WARNING
static final String WATCH = "watch"

Package Functions

void attemptImmediateResolve (VirtualMachine vm)
boolean isJavaIdentifier (String s)
abstract boolean resolve (ReferenceType refType) throws JDEException
void setRequest (EventRequest request)

Package Attributes

boolean isResolved = false
final JDE jde
final DebuggeeProcess proc
final Integer procID
ReferenceTypeSpec refSpec
EventRequest request = null

Private Member Functions

void installClassExFilters (EventRequest request)
void installClassFilters (EventRequest request)

Private Attributes

List classExFilters = null
List classFilters = null
String expr = null
final Long myID
int suspendPolicy = EventRequest.SUSPEND_ALL
Object thread = null

The documentation for this class was generated from the following file:

Generated by  Doxygen 1.6.0   Back to index