コード例 #1
0
        void DoBreak(ILIntepreter intp, int bpHash, bool isStep)
        {
            KeyValuePair <int, StackFrameInfo[]>[] frames = new KeyValuePair <int, StackFrameInfo[]> [AppDomain.Intepreters.Count];
            frames[0] = new KeyValuePair <int, StackFrameInfo[]>(intp.GetHashCode(), GetStackFrameInfo(intp));
            int idx = 1;

            foreach (var j in AppDomain.Intepreters)
            {
                if (j.Value != intp)
                {
                    j.Value.ShouldBreak = true;
                    frames[idx++]       = new KeyValuePair <int, Debugger.StackFrameInfo[]>(j.Value.GetHashCode(), GetStackFrameInfo(j.Value));
                }
            }
            if (!isStep)
            {
                server.SendSCBreakpointHit(intp.GetHashCode(), bpHash, frames);
            }
            else
            {
                server.SendSCStepComplete(intp.GetHashCode(), frames);
            }
            //Breakpoint hit
            intp.Break();
        }