/// <summary> /// Gets the <see cref="ClrThread"/> by managed ThreadID specified in <paramref name="threadObj"/>. /// </summary> /// <param name="threadObj">The thread object.</param> /// <returns></returns> public static ClrThread GetByAddress([ClrObjAndTypeNotEmpty] ClrObject threadObj) { ClrAssert.ObjectNotNullTypeNotEmpty(threadObj); var tp = threadObj.Type; var id = threadObj.GetInt32Fld("m_ManagedThreadId"); return(tp.Heap.Runtime.Threads.FirstOrDefault(t => t.ManagedThreadId == id)); }