Esempio n. 1
0
        public int Bind()
        {
            TEXT_POSITION[] startPosition;
            TEXT_POSITION[] endPosition;
            var             engine       = breakpointManager.Engine;
            var             documentName = engine.GetLocationInfo(requestInfo.bpLocation.unionmember2, out startPosition, out endPosition);

            documentName = engine.TranslateToBuildServerPath(documentName);

            breakpoint = engine.Session.Breakpoints.Add(documentName, (int)startPosition[0].dwLine + 1, (int)startPosition[0].dwColumn + 1);
            breakpointManager.Add(breakpoint, this);
            SetCondition(requestInfo.bpCondition);
            SetPassCount(requestInfo.bpPassCount);

            // Enable(...) would have already been called before Bind
            if (!isEnabled)
            {
                breakpoint.Enabled = false;
            }

            lock (boundBreakpoints)
            {
                uint address = 0;
                var  breakpointResolution = new MonoBreakpointResolution(engine, address, GetDocumentContext(address));
                var  boundBreakpoint      = new MonoBoundBreakpoint(engine, address, this, breakpointResolution);
                boundBreakpoints.Add(boundBreakpoint);

                engine.Send(new MonoBreakpointBoundEvent(this, boundBreakpoint), MonoBreakpointBoundEvent.IID, null);
            }

            return(VSConstants.S_OK);
        }
Esempio n. 2
0
 public MonoBoundBreakpoint(MonoEngine engine, uint address, MonoPendingBreakpoint pendingBreakpoint, MonoBreakpointResolution breakpointResolution)
 {
     this.engine               = engine;
     this.address              = address;
     this.pendingBreakpoint    = pendingBreakpoint;
     this.breakpointResolution = breakpointResolution;
 }
Esempio n. 3
0
 public int GetBreakpointResolution(out IDebugBreakpointResolution2 breakpointResolution)
 {
     breakpointResolution = this.breakpointResolution;
     return(VSConstants.S_OK);
 }