示例#1
0
        public void Stop()
        {
//			lock (obj)
//			{
            active     = false;
            mainThread = null;
//			}
            VM.VMStateChanged -= OnVMStateChanged;
            VM.Detach();
        }
示例#2
0
 public ExecutionProvider(IVirtualMachine vm)
 {
     this.vm = vm;
     this.vm.VMSuspended += VMSuspended;
     this.vm.Stepped += OnStepped;
     this.vm.ThreadStarted += OnThreadStarted;
     this.vm.BreakpointHit += OnBreakpointHit;
     currentLocation = null;
     currentThread = null;
     running = true;
 }
示例#3
0
 public ExecutionProvider(IVirtualMachine vm)
 {
     this.vm                    = vm;
     this.vm.VMSuspended       += VMSuspended;
     this.vm.Stepped           += OnStepped;
     this.vm.ThreadStopped     += OnThreadStopped;
     this.vm.BreakpointHit     += OnBreakpointHit;
     this.vm.AppDomainUnloaded += OnAppDomainUnloaded;
     currentLocation            = null;
     currentThread              = null;
     running                    = true;
 }
示例#4
0
        private void OnVMStateChanged(IEvent ev)
        {
            if (ev.State != State.Start)
            {
                LogOnDebug("VM disconnected");
                return;
            }

            lock (obj)
            {
                if (active)
                {
                }
                active     = true;
                mainThread = ev.Thread;
            }
        }
示例#5
0
        private void VMSuspended(IEvent suspendingEvent)
        {
            lock (obj)
            {
                running = false;
                if (Suspended != null)
                {
                    Suspended(suspendingEvent.Thread);
                }

                currentThread = suspendingEvent.Thread;
                var frames = currentThread.GetFrames();
                currentLocation = frames.Count == 0 ? new Location("", 0) : frames[0].Location;
                //foreach (var frame in frames)
                //{
                //    LogProvider.Log ("frame:" + frame.Location.LineNumber);
                //}
            }
        }
示例#6
0
 private void RefreshFrames(IThreadMirror thread)
 {
     callFrames = thread.GetFrames ();
 }
示例#7
0
文件: Event.cs 项目: soulhez/debugger
 public Event(IThreadMirror thread) : base(null)
 {
     threadMirror = thread;
     request      = null;
 }
示例#8
0
        private void OnVMStateChanged(IEvent ev)
        {
            if (ev.State != State.Start) {
                LogOnDebug ("VM disconnected");
                return;
            }

            lock (obj)
            {
                if (active) {
                }
                active = true;
                mainThread = ev.Thread;
            }
        }
示例#9
0
 public void Stop()
 {
     //			lock (obj)
     //			{
         active = false;
         mainThread = null;
     //			}
     VM.VMStateChanged -= OnVMStateChanged;
     VM.Detach ();
 }
示例#10
0
 private void Suspended(IThreadMirror thread)
 {
     threads       = null;
     CurrentThread = thread;
 }
示例#11
0
        private void VMSuspended(IEvent suspendingEvent)
        {
            lock (obj) {
                running = false;
                if (Suspended != null)
                    Suspended (suspendingEvent.Thread);

                currentThread = suspendingEvent.Thread;
                var frames = currentThread.GetFrames();
                currentLocation = frames.Count == 0 ? new Location ("", 0) : frames[0].Location;
            }
        }
示例#12
0
文件: Event.cs 项目: shana/debugger
 public Event(IThreadMirror thread)
     : base(null)
 {
     threadMirror = thread;
     request = null;
 }
示例#13
0
        private void VMSuspended(IEvent suspendingEvent)
        {
            lock (obj)
            {
                running = false;
                if (Suspended != null)
                    Suspended (suspendingEvent.Thread);

                currentThread = suspendingEvent.Thread;
                var frames = currentThread.GetFrames ();
                currentLocation = frames.Count == 0 ? new Location ("", 0) : frames[0].Location;
                //foreach (var frame in frames)
                //{
                //    LogProvider.Log ("frame:" + frame.Location.LineNumber);
                //}
            }
        }
示例#14
0
 private void Suspended(IThreadMirror thread)
 {
     threads = null;
     CurrentThread = thread;
 }