Examples of ThreadReference


Examples of com.sun.jdi.ThreadReference

        args.add( lineVal );

        try {
            ClassType tt = (ClassType) debugHandlerClass;
            IThread[] tharr = getThreads();
            ThreadReference t = null;
            DroolsThread t2 = null;

            for ( int i = 0; i < tharr.length; i++ ) {
                IThread th2 = tharr[i];
                ThreadReference th2real = ((DroolsThread) tharr[i]).getUnderlyingThread();

                if ( th2real.suspendCount() == 1 && th2.getName().equals( "main" ) ) {
                    t = th2real;
                    t2 = (DroolsThread) th2;
                }
            }
View Full Code Here

Examples of com.sun.jdi.ThreadReference

            avail = in.available();
        }
    }

    ThreadReference findMainThread(VirtualMachine vm) {
        ThreadReference main = null;
        for (ThreadReference thread : vm.allThreads()) {
            if ("main".equals(thread.name())) {
                main = thread;
                break;
            }
View Full Code Here

Examples of com.sun.jdi.ThreadReference

        private HandlerResult result = HandlerResult.RESUME;
        private EventLogger<StepEvent> logger;
       
        StepImpl() {
            super();
            ThreadReference mainThread = findMainThread(vm);
            request = rm.createStepRequest(mainThread, StepRequest.STEP_LINE, StepRequest.STEP_INTO);
        }
View Full Code Here

Examples of com.sun.jdi.ThreadReference

    consoleOut.println("== Preparing...");
    if (vm.eventRequestManager().stepRequests().size() > 0) {
      throw new RuntimeException("Some threads are currently stepping");
    }
    for (int i = 0; i < vm.allThreads().size(); i++) {
      final ThreadReference tr = (ThreadReference) vm.allThreads().get(i);
      vm.eventRequestManager().createStepRequest(tr, StepRequest.STEP_MIN, StepRequest.STEP_INTO).enable();
    }
    final com.sun.jdi.event.EventQueue q = vm.eventQueue();
    boolean done = false;
    consoleOut.println("== Handling events...");
    vm.resume();
    while (true) {
      final EventSet es;
      if (!done) {
        es = q.remove();
      } else {
        es = q.remove(1000);
        if (es == null) {
          break;
        }
      }
      for (final EventIterator ei = es.eventIterator(); ei.hasNext();) {
        final Event e = ei.nextEvent();
        consoleOut.println("== Event received: " + e.toString());
        if (!done && e instanceof StepEvent) {
          final StepEvent se = (StepEvent) e;
          final ThreadReference tr = se.thread();
          vm.eventRequestManager().deleteEventRequest(se.request());
          final List stepRequests = new ArrayList(vm.eventRequestManager().stepRequests());
          for (int i = 0; i < stepRequests.size(); i++) {
            ((StepRequest) stepRequests.get(i)).disable();
          }
View Full Code Here

Examples of com.sun.jdi.ThreadReference

        for (final EventIterator ei = es.eventIterator(); ei.hasNext();) {
          final Event e = ei.nextEvent();
          if (!done && e instanceof BreakpointEvent) {
            final BreakpointEvent be = (BreakpointEvent) e;
            final Location loc = be.location();
            final ThreadReference tr = be.thread()
            if (loc.equals(interceptIn)) {
              LocalVariable result = (LocalVariable) loc.method().variablesByName("result").get(0);
              LocalVariable buffer = (LocalVariable) loc.method().arguments().get(0);
              ArrayReference buf = (ArrayReference) tr.frame(0).getValue(buffer);
              new InputInterceptHandler(tr, buf, result).start();
            } else if (loc.equals(interceptOut)) {
              LocalVariable result = (LocalVariable) loc.method().variablesByName("result").get(0);
              LocalVariable data = (LocalVariable) loc.method().arguments().get(0);
              ArrayReference buf = (ArrayReference) tr.frame(0).getValue(data);
              List values = buf.getValues();
              byte[] temp = new byte[buf.length()];
              for (int i = 0; i < temp.length; i++) {
                temp[i] = ((ByteValue)values.get(i)).byteValue();
              }
              pipedOut.write(temp);
              pipedOut.flush();
              if (temp.length == 0) {
                pipedOut.close();
                pipedIn.close();
                done = true;
              }
              tr.frame(0).setValue(result, vm.mirrorOf(true));
              tr.resume();
            } else {
              throw new RuntimeException("Unknown location: "+loc);
           
          } else {
            System.out.println("== Unknown event received: " + e.toString());
View Full Code Here

Examples of com.sun.jdi.ThreadReference

  public boolean handleClassPrepareEvent(ClassPrepareEvent event,
      JDIDebugTarget target, boolean suspendVote) {
    try {
      if (isEnabled()
          && event.referenceType().name().equals(getTypeName())) {
        ThreadReference threadRef = event.thread();
        JDIThread thread = target.findThread(threadRef);
        if (thread == null || thread.isIgnoringBreakpoints()) {
          return true;
        }
        return handleBreakpointEvent(event, thread, suspendVote);
View Full Code Here

Examples of com.sun.jdi.ThreadReference

     *            the target in which the thread started
     * @return <code>true</code> - the thread should be resumed
     */
    public boolean handleEvent(Event event, JDIDebugTarget target,
        boolean suspendVote, EventSet eventSet) {
      ThreadReference thread = ((ThreadStartEvent) event).thread();
      try {
        if (thread.isCollected()) {
          return false;
        }
      } catch (VMDisconnectedException exception) {
        return false;
      } catch (ObjectCollectedException e) {
View Full Code Here

Examples of com.sun.jdi.ThreadReference

     *            the target in which the thread died
     * @return <code>true</code> - the thread should be resumed
     */
    public boolean handleEvent(Event event, JDIDebugTarget target,
        boolean suspendVote, EventSet eventSet) {
      ThreadReference ref = ((ThreadDeathEvent) event).thread();
      JDIThread thread = findThread(ref);
      if (thread == null) {
        // wait for any thread start event sets to complete processing
        // see bug 272494
        try {
View Full Code Here

Examples of com.sun.jdi.ThreadReference

   */
  private void resumeThreads() {
    if (fEvents.size() == 1) {
      // Most event sets have only one event.
      // Avoid expensive object creation.
      ThreadReference ref = ((EventImpl)fEvents.get(0)).thread();
      if (ref != null) {
        ref.resume();
      } else {
        fEvents.get(0).virtualMachine().resume();
      }
      return;
    }
    Iterator<Event> iter = fEvents.iterator();
    List<ThreadReference> resumedThreads = new ArrayList<ThreadReference>(fEvents.size());
    while (iter.hasNext()) {
      EventImpl event = (EventImpl)iter.next();
      ThreadReference thread = event.thread();
      if (thread == null) {
        event.virtualMachine().resume();
        return;
      }
      if (!resumedThreads.contains(thread)) {
View Full Code Here

Examples of com.sun.jdi.ThreadReference

   * @see com.sun.jdi.ThreadGroupReference#resume()
   */
  public void resume() {
    Iterator<ThreadReference> iter = allThreads().iterator();
    while (iter.hasNext()) {
      ThreadReference thr = iter.next();
      thr.resume();
    }
  }
View Full Code Here
TOP
Copyright © 2018 www.massapi.com. All rights reserved.
All source code are property of their respective owners. Java is a trademark of Sun Microsystems, Inc and owned by ORACLE Inc. Contact coftware#gmail.com.