public Boolean DeleteUserDefinedSymbol(String name) { var k = UserDefinedSymbols.Length; for (var i = 0; i < k; i++) { if (!UserDefinedSymbols[i].IsMatch(name)) { continue; } if ((UserDefinedSymbols[i].AllocSize > 0) && (UserDefinedSymbols[i].ProcessId == Process.Native.Id)) { if (UserDefinedSymbols[i].Address != UIntPtr.Zero) { AMemoryHelper.Free(Process.Handle, UserDefinedSymbols[i].Address.ToIntPtr()); } } //now move up all the others and decrease the list for (var j = i; j < k && j + 1 < k; j++) { UserDefinedSymbols[j] = UserDefinedSymbols[j + 1]; } UserDefinedSymbols.SetLength(k - 1); return(true); } return(false); }