本文整理汇总了Java中com.sun.jdi.event.EventSet类的典型用法代码示例。如果您正苦于以下问题:Java EventSet类的具体用法?Java EventSet怎么用?Java EventSet使用的例子?那么, 这里精选的类代码示例或许可以为您提供帮助。
EventSet类属于com.sun.jdi.event包,在下文中一共展示了EventSet类的12个代码示例,这些例子默认根据受欢迎程度排序。您可以为喜欢或者感觉有用的代码点赞,您的评价将有助于系统推荐出更棒的Java代码示例。
示例1: removeInternal
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
EventSet removeInternal() throws InterruptedException {
EventSet eventSet;
do {
// Waiting forever, so removeUnfiltered() is never null
eventSet = removeUnfiltered(0).internalFilter();
} while (eventSet == null || eventSet.isEmpty());
/*
* Currently, no internal events are requested with a suspend
* policy other than none, so we don't check for notifySuspend()
* here. If this changes in the future, there is much
* infrastructure that needs to be updated.
*/
return eventSet;
}
示例2: handleEventCmdSet
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
protected void handleEventCmdSet(Packet p) {
EventSet eventSet = new EventSetImpl(vm, p);
if (eventSet != null) {
queueEventSet(eventSet);
}
}
示例3: getEventDescriptors
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
@NotNull
public static List<Pair<Breakpoint, Event>> getEventDescriptors(SuspendContextImpl suspendContext) {
DebuggerManagerThreadImpl.assertIsManagerThread();
if(suspendContext == null) {
return Collections.emptyList();
}
final EventSet events = suspendContext.getEventSet();
if(events == null) {
return Collections.emptyList();
}
final List<Pair<Breakpoint, Event>> eventDescriptors = new SmartList<Pair<Breakpoint, Event>>();
final RequestManagerImpl requestManager = suspendContext.getDebugProcess().getRequestsManager();
for (final Event event : events) {
final Requestor requestor = requestManager.findRequestor(event.request());
if (requestor instanceof Breakpoint) {
eventDescriptors.add(Pair.create((Breakpoint)requestor, event));
}
}
return eventDescriptors;
}
示例4: run
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
/**
* Run the event handling thread.
*
* As long as the thread remains connected to the VM, events are removed
* from the queue and dispatched.
*/
@Override
public void run() {
EventQueue queue = vm.eventQueue();
while (connected) {
try {
EventSet eventSet = queue.remove();
EventIterator eventIterator = eventSet.eventIterator();
while (eventIterator.hasNext()) {
handleEvent(eventIterator.nextEvent());
}
eventSet.resume();
} catch (InterruptedException ie) {
vm.dispose();
break;
} catch (VMDisconnectedException vmde) {
handleDisconnectedException();
break;
}
}
}
示例5: getEventDescriptors
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
@NotNull
public static List<Pair<Breakpoint, Event>> getEventDescriptors(SuspendContextImpl suspendContext) {
DebuggerManagerThreadImpl.assertIsManagerThread();
if(suspendContext == null) {
return Collections.emptyList();
}
final EventSet events = suspendContext.getEventSet();
if(events == null) {
return Collections.emptyList();
}
final List<Pair<Breakpoint, Event>> eventDescriptors = new SmartList<Pair<Breakpoint, Event>>();
final RequestManagerImpl requestManager = suspendContext.getDebugProcess().getRequestsManager();
for (final Event event : events) {
final Requestor requestor = requestManager.findRequestor(event.request());
if (requestor instanceof Breakpoint) {
eventDescriptors.add(new Pair<Breakpoint, Event>((Breakpoint)requestor, event));
}
}
return eventDescriptors;
}
示例6: handleEvent
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
@Override
public boolean handleEvent(final Event event, final JDIDebugTarget target,
final boolean suspendVote, final EventSet eventSet)
{
try
{
final int numFrames = getUnderlyingFrameCount();
if (numFrames <= getRemainingFrames())
{
stepEnd(eventSet);
return false;
}
// reset running state and keep going
setRunning(true);
deleteStepRequest();
createSecondaryStepRequest();
return true;
}
catch (final DebugException e)
{
logError(e);
stepEnd(eventSet);
return false;
}
}
示例7: eventLoop
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
private void eventLoop() throws InterruptedException {
System.out.println("eventLoop started");
EventQueue eventQueue = vm.eventQueue();
boolean isRunning = true;
while (isRunning) {
EventSet eventSet = eventQueue.remove();
boolean mayResume = true;
for (Event event : eventSet) {
System.out.println(event);
if (event instanceof VMDeathEvent
|| event instanceof VMDisconnectEvent) {
isRunning = false;
} else if (event instanceof ExceptionEvent) {
mayResume = false;
}
}
if (mayResume) eventSet.resume();
}
}
示例8: handleDisconnectedException
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
/***
* A VMDisconnectedException has happened while dealing with
* another event. We need to flush the event queue, dealing only
* with exit events (VMDeath, VMDisconnect) so that we terminate
* correctly.
*/
synchronized void handleDisconnectedException() {
EventQueue queue = vm.eventQueue();
while (connected) {
try {
EventSet eventSet = queue.remove();
EventIterator iter = eventSet.eventIterator();
while (iter.hasNext()) {
Event event = iter.nextEvent();
if (event instanceof VMDeathEvent) {
vmDeathManager.vmDeathEvent((VMDeathEvent)event,enableProfiling);
} else if (event instanceof VMDisconnectEvent) {
connected=disconnect.vmDisconnectEvent((VMDisconnectEvent)event);
}
}
eventSet.resume(); // Resume the VM
} catch (InterruptedException exc) {
exc.printStackTrace();
}
}
}
示例9: remove
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
/**
* Filter out events not for user's eyes.
* Then filter out empty sets.
*/
public EventSet remove(long timeout) throws InterruptedException {
if (timeout < 0) {
throw new IllegalArgumentException("Timeout cannot be negative");
}
EventSet eventSet;
while (true) {
EventSetImpl fullEventSet = removeUnfiltered(timeout);
if (fullEventSet == null) {
eventSet = null; // timeout
break;
}
/*
* Remove events from the event set for which
* there is no corresponding enabled request (
* this includes our internally requested events.)
* This never returns null
*/
eventSet = fullEventSet.userFilter();
if (!eventSet.isEmpty()) {
break;
}
}
if ((eventSet != null) && (eventSet.suspendPolicy() == JDWP.SuspendPolicy.ALL)) {
vm.notifySuspend();
}
return eventSet;
}
示例10: queueEventSet
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
private void queueEventSet(EventSet eventSet) {
int maxQueueSize = 0;
synchronized(eventQueues) {
Iterator<EventQueue> iter = eventQueues.iterator();
while (iter.hasNext()) {
EventQueueImpl queue = (EventQueueImpl)iter.next();
queue.enqueue(eventSet);
maxQueueSize = Math.max(maxQueueSize, queue.size());
}
}
controlEventFlow(maxQueueSize);
}
示例11: loop
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
private void loop(BreakpointRequest br, Field contextField) throws Exception {
int lineNumber = br.location().lineNumber();
br.setSuspendPolicy(BreakpointRequest.SUSPEND_EVENT_THREAD);
br.enable();
EventQueue evtQueue = vm.eventQueue();
boolean run = true;
while (run) {
EventSet evtSet = evtQueue.remove();
EventIterator evtIter = evtSet.eventIterator();
while (evtIter.hasNext()) {
try {
Event evt = evtIter.next();
EventRequest evtReq = evt.request();
if (evtReq instanceof BreakpointRequest
&& ((BreakpointRequest) evtReq).location().lineNumber() == lineNumber) {
new BreakpointProcessor(missingPerms)
.processBreakpoint(contextField, (BreakpointEvent) evt);
// TODO: 12/20/17 Remove when full loop processing is restored
// run = false;
System.out.println(missingPerms);
missingPerms.clear();
}
} finally {
evtSet.resume();
}
}
}
// System.out.println(missingPerms);
// printPerms(missingPerms);
}
示例12: SuspendContextImpl
import com.sun.jdi.event.EventSet; //导入依赖的package包/类
SuspendContextImpl(@NotNull DebugProcessImpl debugProcess,
@MagicConstant(flagsFromClass = EventRequest.class) int suspendPolicy,
int eventVotes,
EventSet set) {
myDebugProcess = debugProcess;
mySuspendPolicy = suspendPolicy;
myVotesToVote = eventVotes;
myEventSet = set;
}