void debug_ThreadNotification(CorDebugAppDomain app, CorThread thread, bool isAlive) { THREAD _thread = new THREAD(); _thread.Id = thread.ID; _thread.ProcessId = debug.Process.ID; if (isAlive){ _thread.State = THREADSTATE.RUNNING; liveThreads.Add(thread.ID, thread); } else { _thread.State = THREADSTATE.TERMINATED; liveThreads.Remove(thread.ID); deadThreads.Add(thread.ID, GetCallStack(thread)); } ThreadNotification(_thread); }
internal void LoadedNewAssembly(CorAssembly assm, CorDebugAppDomain appDomain) { if (m_AssemblyLoadedNotification != null) { InnerObject innerObject = new InnerObject( m_AssemblyLoadedNotification, new LoadedAssemblyNotificationResult( m_ProcessID, assm.FullName, assm.Name, appDomain.Name) ); ThreadPool.QueueUserWorkItem(new WaitCallback(SendNotifications), innerObject); } }
void debug_AssemblyNotification(CorDebugAppDomain app, CorAssembly assm, bool isLoad) { ASSEMBLY assembly = new ASSEMBLY(); assembly.Name = assm.Name; assembly.Path = assm.Location; if (isLoad) { assembly.LoadedTime = DateTime.Now; }else{ assembly.UnloadedTime = DateTime.Now; } AssmNotification(assembly); }