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)); } } }