Package org.apache.harmony.jpda.tests.framework.jdwp

Examples of org.apache.harmony.jpda.tests.framework.jdwp.ReplyPacket


        if ( combinedEventsLocation == null ) {
            String failureMessage = "## FAILURE: Can NOT get MethodEndLocation for method '"
                + methodForEvents + "'";
            printErrorAndFail(failureMessage);
        }
        ReplyPacket reply = debuggeeWrapper.vmMirror.setBreakpoint(combinedEventsLocation);
        int breakpointRequestID = reply.getNextValueAsInt();
        logWriter.println("=> Breakpoint requestID = " + breakpointRequestID);


        logWriter.println("=> Set request for METHOD_EXIT event in debuggee: "
                + getDebuggeeClassName() + ", method: " + methodForEvents);
        reply = debuggeeWrapper.vmMirror
                .setMethodExit(methodEntryClassNameRegexp);
        checkReplyPacket(reply, "Set METHOD_EXIT event");
        int methodExitRequestID = reply.getNextValueAsInt();
        logWriter.println("=> METHOD_EXIT requestID = " + methodExitRequestID);

        logWriter.println("");
        logWriter.println("Send SGNL_CONTINUE signal to debuggee...");
        synchronizer.sendMessage(JPDADebuggeeSynchronizer.SGNL_CONTINUE);

        // receive and check combined METHOD_EXIT, BREAKPOINT events
        logWriter
                .println("=> Try to receive and check combined events: METHOD_EXIT, BREAKPOINT events");
        EventPacket event = debuggeeWrapper.vmMirror.receiveEvent();
        ParsedEvent[] parsedEvents = ParsedEvent.parseEventPacket(event);
        // print all received events
        logWriter.println("=> Events received: " + parsedEvents.length);
        for (int i = 0; i < parsedEvents.length; i++) {
            logWriter.println("");
            logWriter.println("=> Event #" + i + ";");
            logWriter.println("=> EventKind: "
                    + parsedEvents[i].getEventKind()
                    + "["
                    + JDWPConstants.EventKind.getName(parsedEvents[i]
                            .getEventKind()) + "]");
            logWriter
                    .println("=> RequestID: " + parsedEvents[i].getRequestID());
            if ( parsedEvents[i].getEventKind() == JDWPConstants.EventKind.METHOD_EXIT ) {
                eventMethodExitReceived = true;
            }
        }
        boolean success = true;
        boolean locationsOK = checkEventsLocation(parsedEvents, combinedEventsLocation);
        if (parsedEvents.length == EXPECTED_EVENTS_COUNT) {
            logWriter.println("");
            logWriter
                    .println("=> Combined events are received. Check events..");
            for (int i = 0; i < parsedEvents.length; i++) {
                boolean isFound = false;
                for (int j = 0; j < EXPECTED_EVENTS_COUNT; j++) {
                    if (parsedEvents[i].getEventKind() == EXPECTED_EVENTS_ARRAY[j]) {
                        EXPECTED_EVENTS_ARRAY[j] = 0;
                        isFound = true;
                        break;
                    }
                }
                if (!isFound) {
                    logWriter
                            .println("##FAILURE: received unexpected event: "
                                    + parsedEvents[i].getEventKind()
                                    + "["
                                    + JDWPConstants.EventKind
                                            .getName(parsedEvents[0]
                                                    .getEventKind()) + "]");
                    success = false;
                }
            }
            if (!success) {
                logWriter.println("");
                logWriter
                        .println("##FAILURE: the following events were not received: ");
                for (int k = 0; k < EXPECTED_EVENTS_COUNT; k++) {
                    if (EXPECTED_EVENTS_ARRAY[k] != 0)
                        logWriter.println("  #"
                                + k
                                + ": "
                                + EXPECTED_EVENTS_ARRAY[k]
                                + "["
                                + JDWPConstants.EventKind
                                        .getName(EXPECTED_EVENTS_ARRAY[k])
                                + "]");
                }
                //DBG__fail("not all expected events were received");
            }
        } else {
            logWriter.println("##FAILURE: received unexpected number of events: "
                    + parsedEvents.length
                    + " instead of "
                    + EXPECTED_EVENTS_COUNT);
            //DBG__fail("received unexpected number of events: " + parsedEvents.length);
               
        }
        if ( (! success) || (! locationsOK) ) {
            logWriter.println("## FAILURE during checking events!");
            //DBG__printErrorAndFail(failureMessage);
        }
        if ( eventMethodExitReceived ) {
            logWriter.println("");
            logWriter.println("=> Clean request for METHOD_EXIT event...");
            ReplyPacket clearReply = debuggeeWrapper.vmMirror.clearEvent(
                    JDWPConstants.EventKind.METHOD_EXIT, methodExitRequestID);
            checkReplyPacket(clearReply, "EventRequest::Clear");
        }

        logWriter.println("=> Resume debuggee");
View Full Code Here


        CommandPacket packet = new CommandPacket(
                JDWPCommands.MethodCommandSet.CommandSetID,
                JDWPCommands.MethodCommandSet.LineTableCommand);
        packet.setNextValueAsClassID(classID);
        packet.setNextValueAsMethodID(methodID);
        ReplyPacket lineTableReply = debuggeeWrapper.vmMirror.performCommand(packet);
        if ( ! checkReplyPacketWithoutFail(lineTableReply,  "printMethodLineTable(): Method.LineTable command") ) {
            return;
        }
        if ( className == null ) {
            logWriter.println("=== Line Table for method: " + methodName + " ===");
        } else {
            logWriter.println("=== Line Table for method: " + methodName + " of class: "
                    + className + " ===");
        }
        long methodStartCodeIndex = lineTableReply.getNextValueAsLong();
        logWriter.println("==> Method Start Code Index = " + methodStartCodeIndex);
        long methodEndCodeIndex = lineTableReply.getNextValueAsLong();
        logWriter.println("==> Method End Code Index = " + methodEndCodeIndex);
       
        int linesNumber = lineTableReply.getNextValueAsInt();
        logWriter.println("==> Number of lines = " + linesNumber);
        for (int i=0; i < linesNumber; i++) {
            long lineCodeIndex = lineTableReply.getNextValueAsLong();
            int lineNumber = lineTableReply.getNextValueAsInt();
            logWriter.println("====> Line Number " + lineNumber + " : Initial code index = " + lineCodeIndex);
        }
        logWriter.println("=== End of Line Table " + methodName + " ===");
    }
View Full Code Here

        CommandPacket packet = new CommandPacket(
                JDWPCommands.MethodCommandSet.CommandSetID,
                JDWPCommands.MethodCommandSet.LineTableCommand);
        packet.setNextValueAsClassID(classID);
        packet.setNextValueAsMethodID(methodID);
        ReplyPacket lineTableReply = debuggeeWrapper.vmMirror.performCommand(packet);
        if ( ! checkReplyPacketWithoutFail
                (lineTableReply,  "getMethodStartCodeIndex(): Method.LineTable command") ) {
            return -1;
        }
        long methodStartCodeIndex = lineTableReply.getNextValueAsLong();
        return methodStartCodeIndex;
    }
View Full Code Here

        CommandPacket packet = new CommandPacket(
                JDWPCommands.MethodCommandSet.CommandSetID,
                JDWPCommands.MethodCommandSet.LineTableCommand);
        packet.setNextValueAsClassID(classID);
        packet.setNextValueAsMethodID(methodID);
        ReplyPacket lineTableReply = debuggeeWrapper.vmMirror.performCommand(packet);
        if ( ! checkReplyPacketWithoutFail
                (lineTableReply,  "getMethodEndCodeIndex(): Method.LineTable command") ) {
            return -1;
        }
        long methodStartCodeIndex = lineTableReply.getNextValueAsLong();
        long methodEndCodeIndex = lineTableReply.getNextValueAsLong();
        return methodEndCodeIndex;
    }
View Full Code Here

        CommandPacket packet = new CommandPacket(
                JDWPCommands.MethodCommandSet.CommandSetID,
                JDWPCommands.MethodCommandSet.LineTableCommand);
        packet.setNextValueAsClassID(classID);
        packet.setNextValueAsMethodID(methodID);
        ReplyPacket reply = debuggeeWrapper.vmMirror.performCommand(packet);
        if ( ! checkReplyPacketWithoutFail
                (reply,  "getMethodEntryLocation(): Method.LineTable command") ) {
            return null;
        }
        long methodStartCodeIndex = reply.getNextValueAsLong();
        Location location = new Location();
        location.tag = JDWPConstants.TypeTag.CLASS;
        location.classID =  classID;
        location.methodID = methodID;
        location.index = methodStartCodeIndex;
View Full Code Here

        CommandPacket packet = new CommandPacket(
                JDWPCommands.MethodCommandSet.CommandSetID,
                JDWPCommands.MethodCommandSet.LineTableCommand);
        packet.setNextValueAsClassID(classID);
        packet.setNextValueAsMethodID(methodID);
        ReplyPacket reply = debuggeeWrapper.vmMirror.performCommand(packet);
        if ( ! checkReplyPacketWithoutFail
                (reply,  "getMethodEndLocation(): Method.LineTable command") ) {
            return null;
        }
        long methodStartCodeIndex = reply.getNextValueAsLong();
        long methodEndCodeIndex = reply.getNextValueAsLong();
        Location location = new Location();
        location.tag = JDWPConstants.TypeTag.CLASS;
        location.classID =  classID;
        location.methodID = methodID;
        location.index = methodEndCodeIndex;
View Full Code Here

            Frame.Variable var = (Frame.Variable) it.next();
            command.setNextValueAsInt(var.getSlot());
            command.setNextValueAsByte(var.getTag());
        }

        ReplyPacket reply = checkReply(performCommand(command));
        reply.getNextValueAsInt(); // number of values , is not used
        Value[] values = new Value[slots];
        for (int i = 0; i < slots; i++) {
            values[i] = reply.getNextValueAsValue();
        }

        return values;
    }
View Full Code Here

    public final long getSuperclassId(long classID) {
        CommandPacket command = new CommandPacket(
                JDWPCommands.ClassTypeCommandSet.CommandSetID,
                JDWPCommands.ClassTypeCommandSet.SuperclassCommand);
        command.setNextValueAsClassID(classID);
        ReplyPacket reply = checkReply(performCommand(command));
        return reply.getNextValueAsClassID();
    }
View Full Code Here

    public final long getReferenceType(long objectID) {
        CommandPacket command = new CommandPacket(
                JDWPCommands.ObjectReferenceCommandSet.CommandSetID,
                JDWPCommands.ObjectReferenceCommandSet.ReferenceTypeCommand);
        command.setNextValueAsObjectID(objectID);
        ReplyPacket reply = checkReply(performCommand(command));
        reply.getNextValueAsByte();
        return reply.getNextValueAsLong();
    }
View Full Code Here

    public final long getClassObjectId(long refType) {
        CommandPacket command = new CommandPacket(
                JDWPCommands.ReferenceTypeCommandSet.CommandSetID,
                JDWPCommands.ReferenceTypeCommandSet.ClassObjectCommand);
        command.setNextValueAsReferenceTypeID(refType);
        ReplyPacket reply = checkReply(performCommand(command));
        return reply.getNextValueAsObjectID();
    }
View Full Code Here

TOP

Related Classes of org.apache.harmony.jpda.tests.framework.jdwp.ReplyPacket

Copyright © 2018 www.massapicom. 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.