gnu.classpath.jdwp

Class Jdwp

Implemented Interfaces:
Runnable

public class Jdwp
extends Thread

Main interface from the virtual machine to the JDWP back-end.

Field Summary

static boolean
isDebugging
Are we debugging?

Fields inherited from class java.lang.Thread

MAX_PRIORITY, MIN_PRIORITY, NORM_PRIORITY

Constructor Summary

Jdwp()
constructor

Method Summary

void
configure(String configArgs, Thread mainThread)
Configures the back-end
static Jdwp
getDefault()
Returns the JDWP back-end, creating an instance of it if one does not already exist.
static void
notify(Event event)
Notify the debugger of an event.
void
run()
static void
sendEvent(EventRequest request, Event event)
Sends the event to the debugger.
void
shutdown()
Shutdown the JDWP back-end NOTE: This does not quite work properly.
static boolean
suspendOnStartup()
Should the virtual machine suspend on startup?

Methods inherited from class java.lang.Thread

activeCount, checkAccess, countStackFrames, currentThread, destroy, dumpStack, enumerate, getContextClassLoader, getName, getPriority, getThreadGroup, holdsLock, interrupt, interrupted, isAlive, isDaemon, isInterrupted, join, join, join, resume, run, setContextClassLoader, setDaemon, setName, setPriority, sleep, sleep, start, stop, stop, suspend, toString, yield

Methods inherited from class java.lang.Object

clone, equals, finalize, getClass, hashCode, notify, notifyAll, toString, wait, wait, wait

Field Details

isDebugging

public static boolean isDebugging
Are we debugging?

Constructor Details

Jdwp

public Jdwp()
constructor

Method Details

configure

public void configure(String configArgs,
                      Thread mainThread)
Configures the back-end
Parameters:
configArgs - a string of configury options
mainThread - the main application thread

getDefault

public static Jdwp getDefault()
Returns the JDWP back-end, creating an instance of it if one does not already exist.

notify

public static void notify(Event event)
Notify the debugger of an event. This method should not be called if debugging is not active (but it would not cause any harm). Places where event notifications occur should check isDebugging before doing anything. The event is filtered through the event manager before being sent. FIXME: Probably need logic to send multiple events
Parameters:
event - the event to report

run

public void run()
Specified by:
run in interface Runnable
Overrides:
run in interface Thread

sendEvent

public static void sendEvent(EventRequest request,
                             Event event)
Sends the event to the debugger. This method bypasses the event manager's filtering.
Parameters:
request - the debugger request for the event
event - the event to send

shutdown

public void shutdown()
Shutdown the JDWP back-end NOTE: This does not quite work properly. See notes in run() on this subject (catch of InterruptedException).

suspendOnStartup

public static boolean suspendOnStartup()
Should the virtual machine suspend on startup?

Jdwp.java -- Virtual machine to JDWP back-end programming interface Copyright (C) 2005 Free Software Foundation This file is part of GNU Classpath. GNU Classpath is free software; you can redistribute it and/or modify it under the terms of the GNU General Public License as published by the Free Software Foundation; either version 2, or (at your option) any later version. GNU Classpath is distributed in the hope that it will be useful, but WITHOUT ANY WARRANTY; without even the implied warranty of MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the GNU General Public License for more details. You should have received a copy of the GNU General Public License along with GNU Classpath; see the file COPYING. If not, write to the Free Software Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA. Linking this library statically or dynamically with other modules is making a combined work based on this library. Thus, the terms and conditions of the GNU General Public License cover the whole combination. As a special exception, the copyright holders of this library give you permission to link this library with independent modules to produce an executable, regardless of the license terms of these independent modules, and to copy and distribute the resulting executable under terms of your choice, provided that you also meet, for each linked terms of your choice, provided that you also meet, for each linked independent module, the terms and conditions of the license of that module. An independent module is a module which is not derived from or based on this library. If you modify this library, you may extend this exception to your version of the library, but you are not obligated to do so. If you do not wish to do so, delete this exception statement from your version.