コード例 #1
0
        internal string GetLocationString(Types.Location TheLocation)
        {
            // See if we can find a more common name for the location
            switch (TheLocation.Name)
            {
            // Crateria
            case "Power Bomb (Crateria surface)": return("Power Bomb (Landing Site)");

            case "Missile (Crateria bottom)": return("Missile (Old MB)");

            case "Missile (Crateria middle)": return("Missile (230 Missiles)");

            case "Missile (Crateria moat)": return("Missile (Moat)");

            // Green Brinstar
            case "Power Bomb (green Brinstar bottom)": return("Power Bomb (Etecoons)");

            case "Missile (green Brinstar below super missile)": return("Missile (Early Supers Bridge)");

            case "Super Missile (green Brinstar top)": return("Super Missile (Early Supers)");

            case "Missile (green Brinstar behind reserve tank)": return("Missile (Brinstar Reserve 1)");

            case "Missile (green Brinstar behind missile)": return("Missile (Brinstar Reserve 2)");

            case "Super Missile (green Brinstar bottom)": return("Super Missile (Etecoons)");

            // Pink Brinstar
            case "Super Missile (pink Brinstar)": return("Super Missile (Spore Spawn)");

            case "Missile (pink Brinstar bottom)": return("Missile (Charge Missiles)");

            case "Missile (pink Brinstar top)": return("Missile (Big Pink top)");

            // Blue Brinstar
            case "Missile (blue Brinstar top)": return("Missile (Billy Mays 1)");

            case "Missile (blue Brinstar behind missile)": return("Missile (Billy Mays 2)");

            case "Missile (blue Brinstar middle)": return("Missile (Beta Missiles)");

            case "Missile (blue Brinstar bottom)": return("Missile (Alpha Missiles)");

            // Red Brinstar
            case "Power Bomb (red Brinstar sidehopper room)": return("Power Bomb (Beta PBs)");

            case "Power Bomb (red Brinstar spike room)": return("Power Bomb (Alpha PBs)");

            case "Missile (red Brinstar spike room)": return("Missile (Alpha PBs)");

            // Others
            default: return(TheLocation.Name);
            }
        }
コード例 #2
0
        public BreakpointRequest(VirtualMachine virtualMachine, Location location)
            : base(virtualMachine)
        {
            Contract.Requires(virtualMachine != null);
            Contract.Requires <ArgumentNullException>(location != null, "location");

            _location = location;

            Types.Location protocolLocation = new Types.Location(_location.Method.DeclaringType.TaggedReferenceTypeId, _location.Method.MethodId, checked ((ulong)_location.CodeIndex));
            Modifiers.Add(Types.EventRequestModifier.LocationFilter(protocolLocation));
        }
コード例 #3
0
        public BreakpointRequest(VirtualMachine virtualMachine, Location location)
            : base(virtualMachine)
        {
            Contract.Requires(virtualMachine != null);
            Contract.Requires<ArgumentNullException>(location != null, "location");

            _location = location;

            Types.Location protocolLocation = new Types.Location(_location.Method.DeclaringType.TaggedReferenceTypeId, _location.Method.MethodId, checked((ulong)_location.CodeIndex));
            Modifiers.Add(Types.EventRequestModifier.LocationFilter(protocolLocation));
        }
コード例 #4
0
        internal Location GetMirrorOf(Types.Location location)
        {
            if (location.Method.Handle == 0 && location.Index == 0)
            {
                return(null);
            }

            ReferenceType type      = GetMirrorOf(location.TypeTag, location.Class);
            Method        method    = GetMirrorOf(type, location.Method);
            long          codeIndex = (long)location.Index;
            Location      loc       = new Location(this, method, codeIndex);

            return(loc);
        }
コード例 #5
0
 public void Exception(Types.SuspendPolicy suspendPolicy, RequestId requestId, ThreadId threadId, Types.Location location, TaggedObjectId exception, Types.Location catchLocation)
 {
     EventRequest request = VirtualMachine.EventRequestManager.GetEventRequest(EventKind.Exception, requestId);
     ThreadReference thread = VirtualMachine.GetMirrorOf(threadId);
     Location loc = VirtualMachine.GetMirrorOf(location);
     ObjectReference exceptionReference = VirtualMachine.GetMirrorOf(exception);
     Location catchLoc = VirtualMachine.GetMirrorOf(catchLocation);
     ExceptionEventArgs e = new ExceptionEventArgs(VirtualMachine, (SuspendPolicy)suspendPolicy, request, thread, loc, exceptionReference, catchLoc);
     VirtualMachine.EventQueue.OnException(e);
 }
コード例 #6
0
 public void MonitorContendedWaited(Types.SuspendPolicy suspendPolicy, RequestId requestId, ThreadId thread, TaggedObjectId @object, Types.Location location, bool timedOut)
 {
     throw new NotImplementedException();
 }
コード例 #7
0
 public void MethodExit(Types.SuspendPolicy suspendPolicy, RequestId requestId, ThreadId thread, Types.Location location, Types.Value returnValue)
 {
     throw new NotImplementedException();
 }
コード例 #8
0
 public void MethodEntry(Types.SuspendPolicy suspendPolicy, RequestId requestId, ThreadId thread, Types.Location location)
 {
     throw new NotImplementedException();
 }
コード例 #9
0
            public void Breakpoint(Types.SuspendPolicy suspendPolicy, RequestId requestId, ThreadId threadId, Types.Location location)
            {
                ThreadReference thread = VirtualMachine.GetMirrorOf(threadId);
                EventRequest request = VirtualMachine.EventRequestManager.GetEventRequest(EventKind.Breakpoint, requestId);
                Location loc = VirtualMachine.GetMirrorOf(location);

                ThreadLocationEventArgs e = new ThreadLocationEventArgs(VirtualMachine, (SuspendPolicy)suspendPolicy, request, thread, loc);
                VirtualMachine.EventQueue.OnBreakpoint(e);
            }
コード例 #10
0
 public void FieldModification(Types.SuspendPolicy suspendPolicy, RequestId requestId, ThreadId thread, Types.Location location, TypeTag typeTag, ReferenceTypeId typeId, FieldId field, TaggedObjectId @object, Types.Value newValue)
 {
     throw new NotImplementedException();
 }