public void Suspend() { //LogProvider.Log ("VM: Suspending "); vm.Suspend(); if (VMSuspended != null) { var thread = vm.GetThreads().FirstOrDefault(); //LogProvider.Log ("VM: thread " + thread.Name); if (thread != null) { VMSuspended(new Event(Cache.Lookup <SdbThreadMirror> (thread))); } } }
public void Connect() { WithErrorLogging(() => { Trace("Attempting connection at port {0}...", _debuggerPort); _vm = VirtualMachineManager.Connect(new IPEndPoint(IPAddress.Loopback, _debuggerPort)); _vm.Suspend(); _vm.EnableEvents( EventType.AssemblyLoad, EventType.AssemblyUnload, EventType.AppDomainUnload, EventType.AppDomainCreate, EventType.VMDeath, EventType.VMDisconnect, EventType.TypeLoad ); _methodEntryRequest = _vm.CreateMethodEntryRequest(); StartEventLoop(); }); }