예제 #1
0
        /// <summary>
        /// Perform actual send
        /// </summary>
        private void Send(IDebugProcess2 process, IDebugProgram2 program, IDebugThread2 thread, BaseEvent @event)
        {
            var guid = @event.IID;

            DLog.Debug(DContext.VSDebuggerEvent, "DebugEngine Event {0} {1}", @event.GetType().Name, guid);
            var rc = callback.Event(engine, process, program, thread, @event, ref guid, (uint)@event.Attributes);

            if (!ErrorHandler.Succeeded(rc))
            {
                DLog.Error(DContext.VSDebuggerEvent, "DebugEngine Event failed {0}", rc);
            }
        }
예제 #2
0
        /// <summary>
        /// Send the given event to all event sinks
        /// </summary>
        private void SendEvent(IDebugCoreServer2 server, IDebugPort2 port, IDebugProcess2 process, IDebugProgram2 program, BaseEvent @event)
        {
            var iid = @event.IID;

            DLog.Debug(DContext.VSDebuggerEvent, "DebugPort Event {0} {1}", @event.GetType().Name, iid);
            foreach (var eventSink in eventSinks)
            {
                var events = eventSink as IDebugPortEvents2;
                if (events != null)
                {
                    var rc = events.Event(server, port, process, program, @event, ref iid);
                    if (!ErrorHandler.Succeeded(rc))
                    {
                        DLog.Error(DContext.VSDebuggerEvent, "DebugPort Event failed {0}", rc);
                    }
                }
            }
        }