Example #1
0
        private void SendLoadComplete(AD7Thread thread)
        {
            Debug.WriteLine("Sending load complete" + GetHashCode());
            AD7ProgramCreateEvent.Send(this);

            Send(new AD7LoadCompleteEvent(), AD7LoadCompleteEvent.IID, thread);

            if (_startModule != null)
            {
                SendModuleLoaded(_startModule);
                _startModule = null;
            }

            if (_startThread != null)
            {
                SendThreadStart(_startThread);
                _startThread = null;
            }

            _processLoadedThread = null;

            EventHandler <AD7EngineEventArgs> attached = EngineAttached;

            if (attached != null)
            {
                attached(this, new AD7EngineEventArgs(this));
            }
        }
Example #2
0
        private void SendModuleLoaded(AD7Module ad7Module)
        {
            var eventObject = new AD7ModuleLoadEvent(ad7Module, true /* this is a module load */);

            // TODO: Bind breakpoints when the module loads

            Send(eventObject, AD7ModuleLoadEvent.IID, null);
        }
Example #3
0
 private void OnModuleLoaded(object sender, ModuleLoadedEventArgs e)
 {
     lock (_syncLock)
     {
         AD7Module adModule = _modules[e.Script] = new AD7Module(e.Script);
         if (_programCreated)
         {
             SendModuleLoaded(adModule);
         }
         else
         {
             _startModule = adModule;
         }
     }
 }
Example #4
0
        // EnumModules is called by the debugger when it needs to enumerate the modules in the program.
        public int EnumModules(out IEnumDebugModules2 ppEnum)
        {
            var moduleObjects = new AD7Module[_modules.Count];
            int i             = 0;

            foreach (var keyValue in _modules)
            {
                AD7Module adModule = keyValue.Value;

                moduleObjects[i++] = adModule;
            }

            ppEnum = new AD7ModuleEnum(moduleObjects);

            return(VSConstants.S_OK);
        }
Example #5
0
 public AD7ModuleLoadEvent(AD7Module module, bool fLoad)
 {
     m_module = module;
     m_fLoad = fLoad;
 }
Example #6
0
 private void OnModuleLoaded(object sender, ModuleLoadedEventArgs e)
 {
     lock (_syncLock)
     {
         AD7Module adModule = _modules[e.Script] = new AD7Module(e.Script);
         if (_programCreated)
         {
             SendModuleLoaded(adModule);
         }
         else
         {
             _startModule = adModule;
         }
     }
 }
Example #7
0
        // EnumModules is called by the debugger when it needs to enumerate the modules in the program.
        public int EnumModules(out IEnumDebugModules2 ppEnum)
        {
            var moduleObjects = new AD7Module[_modules.Count];
            int i = 0;
            foreach (var keyValue in _modules)
            {
                AD7Module adModule = keyValue.Value;

                moduleObjects[i++] = adModule;
            }

            ppEnum = new AD7ModuleEnum(moduleObjects);

            return VSConstants.S_OK;
        }
Example #8
0
        private void SendModuleLoaded(AD7Module ad7Module)
        {
            var eventObject = new AD7ModuleLoadEvent(ad7Module, true /* this is a module load */);

            // TODO: Bind breakpoints when the module loads

            Send(eventObject, AD7ModuleLoadEvent.IID, null);
        }
Example #9
0
        private void SendLoadComplete(AD7Thread thread)
        {
            Debug.WriteLine("Sending load complete" + GetHashCode());
            AD7ProgramCreateEvent.Send(this);

            Send(new AD7LoadCompleteEvent(), AD7LoadCompleteEvent.IID, thread);

            if (_startModule != null)
            {
                SendModuleLoaded(_startModule);
                _startModule = null;
            }

            if (_startThread != null)
            {
                SendThreadStart(_startThread);
                _startThread = null;
            }

            _processLoadedThread = null;

            EventHandler<AD7EngineEventArgs> attached = EngineAttached;
            if (attached != null)
            {
                attached(this, new AD7EngineEventArgs(this));
            }
        }
Example #10
0
 public AD7ModuleLoadEvent(AD7Module module, bool fLoad)
 {
     m_module = module;
     m_fLoad  = fLoad;
 }