void OnReceiveSCBreakpointHit(SCBreakpointHit msg, string error) { IBreakPoint bp; IThread t, bpThread = null; if (breakpoints.TryGetValue(msg.BreakpointHashCode, out bp)) { 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) { HandleBreakpointHit(bp, bpThread); if (!string.IsNullOrWhiteSpace(error)) { var errorMsg = string.Format(BreakpointErrorMsg, System.IO.Path.GetFileName(bp.DocumentName), bp.StartLine + 1, bp.StartColumn, bp.ConditionExpression, error); HandleShowErrorMessageBox(errorMsg); } } } }
void OnReceiveSCBreakpointHit(SCBreakpointHit msg) { AD7PendingBreakPoint bp; AD7Thread t, bpThread = null; if (breakpoints.TryGetValue(msg.BreakpointHashCode, out bp)) { 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.BreakpointHit(bp, 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; } } } }