Ejemplo n.º 1
0
        void ITraceCollector.Run(DataStack dataStack, IFormalCodeItem codeBase)
        {
            var beforeSize = dataStack.Size;
            var index = Steps.Count;
            var item = new Step(codeBase, dataStack, index, Frames.ToArray());
            Steps.Add(item);
            AssumeStepsForCode(item.CodeBase, index);

            try
            {
                codeBase.Visit(dataStack);
            }
            catch(Exception exception)
            {
                item.Exception = exception;
                dataStack.Size = beforeSize + codeBase.Size;
            }

            item.AfterStack = dataStack;
        }
Ejemplo n.º 2
0
 void SubVisit(IFormalCodeItem codeBase)
 {
     if(TraceCollector == null)
         codeBase.Visit(this);
     else
         TraceCollector.Run(this, codeBase);
 }