コード例 #1
0
 internal StackTrace(Exception e, int skipFrames, bool fNeedFileInfo, bool returnNativeFrames)
 {
     if (e == null)
     {
         throw new ArgumentNullException("e");
     }
     if (skipFrames < 0)
     {
         throw new ArgumentOutOfRangeException("< 0", "skipFrames");
     }
     this.frames = StackTrace.get_trace(e, skipFrames, fNeedFileInfo);
     if (!returnNativeFrames)
     {
         bool flag = false;
         for (int i = 0; i < this.frames.Length; i++)
         {
             if (this.frames[i].GetMethod() == null)
             {
                 flag = true;
             }
         }
         if (flag)
         {
             ArrayList arrayList = new ArrayList();
             for (int j = 0; j < this.frames.Length; j++)
             {
                 if (this.frames[j].GetMethod() != null)
                 {
                     arrayList.Add(this.frames[j]);
                 }
             }
             this.frames = (StackFrame[])arrayList.ToArray(typeof(StackFrame));
         }
     }
 }