예제 #1
0
파일: Function.cs 프로젝트: pusp/o2platform
        public COR_DEBUG_STEP_RANGE[] GetStepRangesFromIP(int ip)
        {
            EnsureIsUpToDate();

            // we cannot use GetRange here, since this function doesn't work
            // in ENC mode.
            //
            // we will calculate step ranges manually from sequence points.
            //
            COR_DEBUG_STEP_RANGE[] ret = null;
            for (int j = 0; j < m_SPcount; j++)
                if (m_SPoffsets[j] > ip)
                {
                    ret = new COR_DEBUG_STEP_RANGE[1];
                    ret[0].endOffset = (uint) m_SPoffsets[j];
                    ret[0].startOffset = (uint) m_SPoffsets[j - 1];
                    break;
                }
            // let's handle correctly last step range from last sequence point till
            // end of the method.
            if (ret == null && m_SPcount > 0)
            {
                ret = new COR_DEBUG_STEP_RANGE[1];
                ret[0].startOffset = (uint) m_SPoffsets[m_SPcount - 1];
                ret[0].endOffset = (uint) CorFunction.ILCode.Size;
            }
            return ret;
        }
 public void StepRange(bool stepInto, COR_DEBUG_STEP_RANGE[] stepRanges)
 {
     m_step.StepRange(stepInto ? 1 : 0, stepRanges, (uint) stepRanges.Length);
 }