void OnReceiveSCStepComplete(SCStepComplete msg) { AD7Thread t, bpThread = null; foreach (var i in msg.StackFrame) { if (threads.TryGetValue(i.Key, out t)) { t.StackFrames = i.Value; if (i.Key == msg.ThreadHashCode) { bpThread = t; } } } if (bpThread != null) { engine.Callback.StepCompleted(bpThread); } }
void OnReceiveSCStepComplete(SCStepComplete msg) { IThread t, bpThread = null; foreach (var i in msg.StackFrame) { if (threads.TryGetValue(i.Key, out t)) { t.StackFrames = i.Value; if (i.Key == msg.ThreadHashCode) { bpThread = t; } } } if (bpThread != null) { HandleStepCompelte(bpThread); } }
void OnReceiveMessage(DebugMessageType type, byte[] buffer) { using (System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer)) { using (System.IO.BinaryReader br = new System.IO.BinaryReader(ms)) { switch (type) { case DebugMessageType.SCAttachResult: { SCAttachResult result = new SCAttachResult(); result.Result = (AttachResults)br.ReadByte(); result.DebugServerVersion = br.ReadInt32(); RemoteDebugVersion = result.DebugServerVersion; waitingAttach = false; } break; case DebugMessageType.SCBindBreakpointResult: { SCBindBreakpointResult msg = new SCBindBreakpointResult(); msg.BreakpointHashCode = br.ReadInt32(); msg.Result = (BindBreakpointResults)br.ReadByte(); OnReceivSendSCBindBreakpointResult(msg); } break; case DebugMessageType.SCBreakpointHit: { SCBreakpointHit msg = new SCBreakpointHit(); msg.BreakpointHashCode = br.ReadInt32(); msg.ThreadHashCode = br.ReadInt32(); msg.StackFrame = ReadStackFrames(br); OnReceiveSCBreakpointHit(msg); } break; case DebugMessageType.SCStepComplete: { SCStepComplete msg = new SCStepComplete(); msg.ThreadHashCode = br.ReadInt32(); msg.StackFrame = ReadStackFrames(br); OnReceiveSCStepComplete(msg); } break; case DebugMessageType.SCThreadStarted: { SCThreadStarted msg = new SCThreadStarted(); msg.ThreadHashCode = br.ReadInt32(); OnReceiveSCThreadStarted(msg); } break; case DebugMessageType.SCThreadEnded: { SCThreadEnded msg = new SCThreadEnded(); msg.ThreadHashCode = br.ReadInt32(); OnReceiveSCThreadEnded(msg); } break; case DebugMessageType.SCModuleLoaded: { SCModuleLoaded msg = new SCModuleLoaded(); msg.ModuleName = br.ReadString(); OnReceiveSCModuleLoaded(msg); } break; case DebugMessageType.SCResolveVariableResult: { CompleteRPCRequest(ReadVariableInfo(br)); } break; case DebugMessageType.SCEnumChildrenResult: { int cnt = br.ReadInt32(); VariableInfo[] res = new VariableInfo[cnt]; for (int i = 0; i < cnt; i++) { res[i] = ReadVariableInfo(br); } CompleteRPCRequest(res); } break; } } } }
void OnReceiveMessage(DebugMessageType type, byte[] buffer) { using (System.IO.MemoryStream ms = new System.IO.MemoryStream(buffer)) { using (System.IO.BinaryReader br = new System.IO.BinaryReader(ms)) { switch (type) { case DebugMessageType.SCAttachResult: { SCAttachResult result = new SCAttachResult(); result.Result = (AttachResults)br.ReadByte(); result.DebugServerVersion = br.ReadInt32(); RemoteDebugVersion = result.DebugServerVersion; waitingAttach = false; } break; case DebugMessageType.SCBindBreakpointResult: { SCBindBreakpointResult msg = new SCBindBreakpointResult(); msg.BreakpointHashCode = br.ReadInt32(); msg.Result = (BindBreakpointResults)br.ReadByte(); OnReceivSendSCBindBreakpointResult(msg); } break; case DebugMessageType.SCBreakpointHit: { SCBreakpointHit msg = new SCBreakpointHit(); msg.BreakpointHashCode = br.ReadInt32(); msg.ThreadHashCode = br.ReadInt32(); msg.StackFrame = ReadStackFrames(br); OnReceiveSCBreakpointHit(msg); } break; case DebugMessageType.SCStepComplete: { SCStepComplete msg = new SCStepComplete(); msg.ThreadHashCode = br.ReadInt32(); msg.StackFrame = ReadStackFrames(br); OnReceiveSCStepComplete(msg); } break; case DebugMessageType.SCThreadStarted: { SCThreadStarted msg = new SCThreadStarted(); msg.ThreadHashCode = br.ReadInt32(); OnReceiveSCThreadStarted(msg); } break; case DebugMessageType.SCThreadEnded: { SCThreadEnded msg = new SCThreadEnded(); msg.ThreadHashCode = br.ReadInt32(); OnReceiveSCThreadEnded(msg); } break; case DebugMessageType.SCModuleLoaded: { SCModuleLoaded msg = new SCModuleLoaded(); msg.ModuleName = br.ReadString(); OnReceiveSCModuleLoaded(msg); } break; } } } }