Exemplo n.º 1
0
 int IDebugBreakpointBoundEvent2.EnumBoundBreakpoints(out IEnumDebugBoundBreakpoints2 ppEnum)
 {
     IDebugBoundBreakpoint2[] boundBreakpoints = new IDebugBoundBreakpoint2[1];
     boundBreakpoints[0] = _boundBreakpoint;
     ppEnum = new AD7BoundBreakpointsEnum(boundBreakpoints);
     return(Constants.S_OK);
 }
Exemplo n.º 2
0
 // Enumerates all breakpoints bound from this pending breakpoint
 int IDebugPendingBreakpoint2.EnumBoundBreakpoints(out IEnumDebugBoundBreakpoints2 ppEnum)
 {
     lock (_boundBreakpoints)
     {
         IDebugBoundBreakpoint2[] boundBreakpoints = _boundBreakpoints.ToArray();
         ppEnum = new AD7BoundBreakpointsEnum(boundBreakpoints);
     }
     return(Constants.S_OK);
 }
Exemplo n.º 3
0
        public void OnBreakpoint(DebuggedThread thread, ReadOnlyCollection <object> clients)
        {
            IDebugBoundBreakpoint2[] boundBreakpoints = new IDebugBoundBreakpoint2[clients.Count];

            int i = 0;

            foreach (object objCurrentBreakpoint in clients)
            {
                boundBreakpoints[i] = (IDebugBoundBreakpoint2)objCurrentBreakpoint;
                i++;
            }

            // An engine that supports more advanced breakpoint features such as hit counts, conditions and filters
            // should notify each bound breakpoint that it has been hit and evaluate conditions here.
            // The sample engine does not support these features.

            AD7BoundBreakpointsEnum boundBreakpointsEnum = new AD7BoundBreakpointsEnum(boundBreakpoints);

            AD7BreakpointEvent eventObject = new AD7BreakpointEvent(boundBreakpointsEnum);

            AD7Thread ad7Thread = (AD7Thread)thread.Client;

            Send(eventObject, AD7BreakpointEvent.IID, ad7Thread);
        }