예제 #1
0
        // Engines notify the debugger about the results of a symbol serach by sending an instance of IDebugSymbolSearchEvent2
        public void OnSymbolSearch(AD7Module module, string status, enum_MODULE_INFO_FLAGS dwStatusFlags)
        {
            string statusString = (dwStatusFlags == enum_MODULE_INFO_FLAGS.MIF_SYMBOLS_LOADED ? "Symbols Loaded - " : "No symbols loaded") + status;

            AD7SymbolSearchEvent eventObject = new AD7SymbolSearchEvent(module, statusString, dwStatusFlags);

            Send(eventObject, AD7SymbolSearchEvent.IID, null);
        }
예제 #2
0
        public virtual void OnSymbolSearch(DebugModuleBase module,
                                           string debugMessage,
                                           enum_MODULE_INFO_FLAGS moduleInfoFlags)
        {
            Logger.Debug(string.Empty);
            var eventObject = new SymbolSearchEvent(module, debugMessage, moduleInfoFlags);

            OnDebugEvent(eventObject, InterfaceGuids.IDebugSymbolSearchEvent2Guid);
        }
예제 #3
0
        /// <summary>
        /// Called by an event handler to retrieve results about a symbol load process.
        /// </summary>
        /// <param name="pModule">An IDebugModule3 object representing the module for which the symbols were loaded.</param>
        /// <param name="pbstrDebugMessage">Returns a string containing any error messages from the module. If there is no error, then this string will just contain the module's name but it is never empty.</param>
        /// <param name="pdwModuleInfoFlags">A combination of flags from the MODULE_INFO_FLAGS enumeration indicating whether any symbols were loaded.</param>
        /// <returns>If successful, returns S_OK; otherwise returns an error code.</returns>
        /// <remarks>When a handler receives the IDebugSymbolSearchEvent2 event after an attempt is made to load debugging symbols for a module, the handler can call this method to determine the results of that load.</remarks>
        public virtual int GetSymbolSearchInfo( out IDebugModule3 pModule,
            ref string pbstrDebugMessage,
            enum_MODULE_INFO_FLAGS[] pdwModuleInfoFlags)
        {
            pModule = Module;
            pbstrDebugMessage = DebugMessage;
            pdwModuleInfoFlags[0] = ModuleInfoFlags;

            return VSConstants.S_OK;
        }
예제 #4
0
        // Engines notify the debugger about the results of a symbol serach by sending an instance
        // of IDebugSymbolSearchEvent2
        public void OnSymbolSearch(DebuggedModule module, string status, uint dwStatusFlags)
        {
            enum_MODULE_INFO_FLAGS statusFlags = (enum_MODULE_INFO_FLAGS)dwStatusFlags;

            string statusString = ((statusFlags & enum_MODULE_INFO_FLAGS.MIF_SYMBOLS_LOADED) != 0 ? "Symbols Loaded - " : "No symbols loaded") + status;

            AD7Module            ad7Module   = new AD7Module(module, _engine.DebuggedProcess);
            AD7SymbolSearchEvent eventObject = new AD7SymbolSearchEvent(ad7Module, statusString, statusFlags);

            Send(eventObject, AD7SymbolSearchEvent.IID, null);
        }
        public DebugSymbolSearchEvent(enum_EVENTATTRIBUTES attributes, IDebugModule3 module, string debugMessage, enum_MODULE_INFO_FLAGS moduleInfoFlags)
            : base(attributes)
        {
            Contract.Requires <ArgumentNullException>(module != null, "module");
            Contract.Requires <ArgumentNullException>(debugMessage != null, "debugMessage");
            Contract.Requires <ArgumentException>(!string.IsNullOrEmpty(debugMessage));

            _module          = module;
            _debugMessage    = debugMessage;
            _moduleInfoFlags = moduleInfoFlags;
        }
예제 #6
0
        public DebugSymbolSearchEvent(enum_EVENTATTRIBUTES attributes, IDebugModule3 module, string debugMessage, enum_MODULE_INFO_FLAGS moduleInfoFlags)
            : base(attributes)
        {
            Contract.Requires<ArgumentNullException>(module != null, "module");
            Contract.Requires<ArgumentNullException>(debugMessage != null, "debugMessage");
            Contract.Requires<ArgumentException>(!string.IsNullOrEmpty(debugMessage));

            _module = module;
            _debugMessage = debugMessage;
            _moduleInfoFlags = moduleInfoFlags;
        }
예제 #7
0
        public int GetSymbolSearchInfo(out IDebugModule3 pModule, ref string pbstrDebugMessage, enum_MODULE_INFO_FLAGS[] pdwModuleInfoFlags)
        {
            if (pdwModuleInfoFlags == null)
                throw new ArgumentNullException("pdwModuleInfoFlags");
            if (pdwModuleInfoFlags.Length < 1)
                throw new ArgumentException();

            pModule = _module;
            pbstrDebugMessage = _debugMessage;
            pdwModuleInfoFlags[0] = _moduleInfoFlags;
            return VSConstants.S_OK;
        }
예제 #8
0
 public SymbolSearchEvent( DebugModuleBase module, string debugMessage, enum_MODULE_INFO_FLAGS symbolFlags )
 {
     Module = module;
     DebugMessage = debugMessage;
     ModuleInfoFlags = symbolFlags;
 }
예제 #9
0
        int IDebugSymbolSearchEvent2.GetSymbolSearchInfo(out IDebugModule3 pModule, ref string pbstrDebugMessage, enum_MODULE_INFO_FLAGS[] pdwModuleInfoFlags)
        {
            pModule = _module;
            pbstrDebugMessage = _searchInfo;
            pdwModuleInfoFlags[0] = _symbolFlags;

            return Constants.S_OK;
        }
예제 #10
0
 public AD7SymbolSearchEvent(AD7Module module, string searchInfo, enum_MODULE_INFO_FLAGS symbolFlags)
 {
     _module = module;
     _searchInfo = searchInfo;
     _symbolFlags = symbolFlags;
 }
 public virtual void OnSymbolSearch( DebugModuleBase module,
     string debugMessage,
     enum_MODULE_INFO_FLAGS moduleInfoFlags)
 {
     Logger.Debug( string.Empty );
     var eventObject = new SymbolSearchEvent( module, debugMessage, moduleInfoFlags );
     OnDebugEvent( eventObject, InterfaceGuids.IDebugSymbolSearchEvent2Guid );
 }
예제 #12
0
 public SymbolSearchEvent(DebugModuleBase module, string debugMessage, enum_MODULE_INFO_FLAGS symbolFlags)
 {
     Module          = module;
     DebugMessage    = debugMessage;
     ModuleInfoFlags = symbolFlags;
 }
예제 #13
0
      int IDebugSymbolSearchEvent2.GetSymbolSearchInfo (out IDebugModule3 pModule, ref string pbstrDebugMessage, enum_MODULE_INFO_FLAGS [] pdwModuleInfoFlags)
      {
        LoggingUtils.PrintFunction ();

        pModule = m_debugModule;

        pbstrDebugMessage = m_searchInfo;

        pdwModuleInfoFlags [0] = enum_MODULE_INFO_FLAGS.MIF_SYMBOLS_LOADED;

        return Constants.S_OK;
      }
예제 #14
0
 public SymbolSearchEvent(DebugModule module, string message, enum_MODULE_INFO_FLAGS flags)
 {
     this.module  = module;
     this.message = message;
     this.flags   = flags;
 }
예제 #15
0
      public SymbolSearch (IDebugModule3 debugModule, string searchInfo)
      {
        m_debugModule = debugModule;

        m_searchInfo = searchInfo;

        m_symbolFlags = enum_MODULE_INFO_FLAGS.MIF_SYMBOLS_LOADED;
      }
예제 #16
0
 public AD7SymbolSearchEvent(AD7Module module, string searchInfo, enum_MODULE_INFO_FLAGS symbolFlags)
 {
     _module      = module;
     _searchInfo  = searchInfo;
     _symbolFlags = symbolFlags;
 }
예제 #17
0
    // Engines notify the debugger about the results of a symbol serach by sending an instance of IDebugSymbolSearchEvent2
    public void OnSymbolSearch(AD7Module module, string status, enum_MODULE_INFO_FLAGS dwStatusFlags) {
      string statusString = (dwStatusFlags == enum_MODULE_INFO_FLAGS.MIF_SYMBOLS_LOADED ? "Symbols Loaded - " : "No symbols loaded") + status;

      AD7SymbolSearchEvent eventObject = new AD7SymbolSearchEvent(module, statusString, dwStatusFlags);
      Send(eventObject, AD7SymbolSearchEvent.IID, null);
    }