/// <summary> /// The VSNDK debug engine does not support binding breakpoints as modules load since the primary exe is the only module /// symbols are loaded for. A production debugger will need to bind breakpoints when a new module is loaded. /// </summary> /// <param name="debuggedModule"> A module loaded in the debugged process. </param> public void OnModuleLoad(AD7Module debuggedModule) { // AD7Module ad7Module = new AD7Module(debuggedModule); AD7ModuleLoadEvent eventObject = new AD7ModuleLoadEvent(debuggedModule, true /* this is a module load */); // debuggedModule.Client = ad7Module; Send(eventObject, AD7ModuleLoadEvent.IID, null); }
/// <summary> /// Sends the event. /// </summary> /// <param name="engine"> The AD7Engine object that represents the DE. </param> /// <param name="aModule"> The IDebugModule2 object that represents the module which is loading or unloading. </param> /// <param name="fLoad"> onzero (TRUE) if the module is loading and zero (FALSE) if the module is unloading. </param> internal static void Send(AD7Engine engine, AD7Module aModule, bool fLoad) { var eventObject = new AD7ModuleLoadEvent(aModule, fLoad); engine.Callback.Send(eventObject, IID, null); }
/// <summary> /// The VSNDK debug engine does not support binding breakpoints as modules load since the primary exe is the only module /// symbols are loaded for. A production debugger will need to bind breakpoints when a new module is loaded. /// </summary> /// <param name="debuggedModule"> A module loaded in the debugged process. </param> public void OnModuleLoad(AD7Module debuggedModule) { // AD7Module ad7Module = new AD7Module(debuggedModule); AD7ModuleLoadEvent eventObject = new AD7ModuleLoadEvent(debuggedModule, true /* this is a module load */); // debuggedModule.Client = ad7Module; Send(eventObject, AD7ModuleLoadEvent.IID, null); }
internal static void Send(AD7Engine engine, AD7Module aModule, bool fLoad) { var eventObject = new AD7ModuleLoadEvent(aModule, fLoad); engine.Callback.Send(eventObject, IID, null); }
//public void OnModuleLoad(DebuggedModule debuggedModule) public void OnModuleLoad(AD7Module debuggedModule) { // This will get called when the entrypoint breakpoint is fired because the engine sends a mod-load event // for the exe. // if (m_engine.DebuggedProcess != null) // { // Debug.Assert(GDBParser.CurrentThreadId == m_engine.DebuggedProcess.PollThreadId); // } // AD7Module ad7Module = new AD7Module(debuggedModule); AD7ModuleLoadEvent eventObject = new AD7ModuleLoadEvent(debuggedModule, true /* this is a module load */); // debuggedModule.Client = ad7Module; // The sample engine does not support binding breakpoints as modules load since the primary exe is the only module // symbols are loaded for. A production debugger will need to bind breakpoints when a new module is loaded. Send(eventObject, AD7ModuleLoadEvent.IID, null); }