//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public int EnumModules (out IEnumDebugModules2 ppEnum) { // // Enumerates the modules that this program has loaded and is executing. // LoggingUtils.PrintFunction (); try { List<IDebugModule2> modules = new List<IDebugModule2> (); foreach (DebuggeeModule module in m_debugModules.Values) { modules.Add (module as IDebugModule2); } ppEnum = new DebuggeeModule.Enumerator (modules); if (ppEnum == null) { throw new InvalidOperationException (); } return Constants.S_OK; } catch (Exception e) { LoggingUtils.HandleException (e); ppEnum = null; return Constants.E_FAIL; } }
//////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// //////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////////// public int EnumModules(out IEnumDebugModules2 ppEnum) { // // Enumerates the modules that this program has loaded and is executing. // LoggingUtils.PrintFunction(); ppEnum = null; try { List <IDebugModule2> modules = new List <IDebugModule2> (); uint count; { LoggingUtils.RequireOk(AttachedEngine.NativeDebugger.NativeProgram.EnumModules(out ppEnum)); LoggingUtils.RequireOk(ppEnum.GetCount(out count)); IDebugModule2 [] moduleArray = new IDebugModule2 [count]; LoggingUtils.RequireOk(ppEnum.Next(count, moduleArray, ref count)); modules.AddRange(moduleArray); } { LoggingUtils.RequireOk(AttachedEngine.JavaDebugger.JavaProgram.EnumModules(out ppEnum)); LoggingUtils.RequireOk(ppEnum.GetCount(out count)); IDebugModule2 [] moduleArray = new IDebugModule2 [count]; LoggingUtils.RequireOk(ppEnum.Next(count, moduleArray, ref count)); modules.AddRange(moduleArray); } ppEnum = new DebuggeeModule.Enumerator(modules); return(Constants.S_OK); } catch (Exception e) { LoggingUtils.HandleException(e); return(Constants.E_FAIL); } }