internal void AppendStackTraceForHandle(JniHandleInfo handle, string append) { if (!Handles.Contains(handle)) { Handles.Add(handle); } StringBuilder stack; if (!stacks.TryGetValue(handle, out stack)) { stacks.Add(handle, new StringBuilder(append)); return; } if (stack.Length > 0) { stack.Append("\n"); } stack.Append(append); if (append.Contains(".get_class_ref()")) { SetTypesFromStackTraceEntry(append, append.LastIndexOf(".get_class_ref()", StringComparison.Ordinal)); } else if (append.EndsWith("..cctor()", StringComparison.Ordinal)) { SetTypesFromStackTraceEntry(append, append.LastIndexOf("..cctor()", StringComparison.Ordinal)); } else if (append.Contains("..ctor(")) { SetTypesFromStackTraceEntry(append, append.LastIndexOf("..ctor(", StringComparison.Ordinal)); } }
public string GetStackTraceForHandle(JniHandleInfo handle) { StringBuilder stack; if (stacks.TryGetValue(handle, out stack)) { return(stack.ToString()); } return(null); }