コード例 #1
0
        /// <summary>
        /// Gets all ILSpans of a statement
        /// </summary>
        /// <param name="statementSpan">Statement span</param>
        /// <returns></returns>
        public DbgILSpan[] GetILSpansOfStatement(DbgTextSpan statementSpan)
        {
            if (statementsDict == null)
            {
                Interlocked.CompareExchange(ref statementsDict, CreateStatementsDict(Statements), null);
            }
            if (statementsDict.TryGetValue(statementSpan, out var list))
            {
                var spans = list.ToArray();
#if DEBUG
                for (int i = 1; i < spans.Length; i++)
                {
                    Debug.Assert(spans[i - 1].End <= spans[i].Start);
                }
#endif
                return(spans);
            }
            return(Array.Empty <DbgILSpan>());
        }
コード例 #2
0
 /// <summary>
 /// Constructor
 /// </summary>
 /// <param name="ilSpan">IL span</param>
 /// <param name="textSpan">Text span</param>
 public DbgSourceStatement(DbgILSpan ilSpan, DbgTextSpan textSpan)
 {
     this.ilSpan   = ilSpan;
     this.textSpan = textSpan;
 }