protected virtual void OnSymbolsLoaded(ModuleEventArgs e) { if (SymbolsLoaded != null) { SymbolsLoaded(this, e); } }
void debuggedProcess_ModulesAdded(object sender, ModuleEventArgs e) { var currentModuleTypes = e.Module.GetNamesOfDefinedTypes(); foreach (var bookmark in DebuggerService.Breakpoints.OfType<DecompiledBreakpointBookmark>()) { var breakpoint = debugger.Breakpoints.FirstOrDefault( b => b is ILBreakpoint && b.Line == bookmark.LineNumber && ((ILBreakpoint)b).MetadataToken == bookmark.MemberReference.MetadataToken.ToInt32()); if (breakpoint == null) continue; // set the breakpoint only if the module contains the type if (!currentModuleTypes.Contains(breakpoint.TypeName)) continue; breakpoint.SetBreakpoint(e.Module); } }
void ModuleLoaded(object sender, ModuleEventArgs ev) { try { Module module = ev.Module; Console.Error.WriteLine("ModuleLoaded:" + module.FullPath + "|"); /*List<DebugType> types = module.GetDefinedTypes(); Console.Error.WriteLine("ModuleLoaded:" + types.Count); for (int t = 0; t < types.Count; t++) { try { DebugType type = types[t]; //Console.Error.WriteLine(type + " " + type.FullName); typeMap.Add(type.FullName, type); } catch (ArgumentException) { //TODO add support for duplicate values } }*/ } catch (System.Exception ex) { Console.Error.WriteLine(ex); } }
void ModuleLoaded(object sender, ModuleEventArgs e) { DebuggerModuleModel model = new DebuggerModuleModel(e.Module); moduleModels.Add(model); Assemblies.Add(model.AssemblyModel); }
void ModuleUnloaded(object sender, ModuleEventArgs e) { DebuggerModuleModel deletedModel = moduleModels.FirstOrDefault(mm => mm.Module == e.Module); if (deletedModel != null) { moduleModels.Remove(deletedModel); Assemblies.Remove(deletedModel.AssemblyModel); } }
void process_Modules_Added(object sender, ModuleEventArgs e) { if (ProjectService.OpenSolution == null) return; ProjectService.OpenSolution.Projects .Where(p => e.Module.Name.IndexOf(p.Name) >= 0) .ForEach(p => e.Module.LoadSymbolsFromDisk(new []{ Path.GetDirectoryName(p.OutputAssemblyFullPath) })); }
void debuggedProcess_ModuleUnloaded(object sender, ModuleEventArgs e) { RemoveModule(e.Module); }
void debuggedProcess_ModuleLoaded(object sender, ModuleEventArgs e) { AddModule(e.Module); }
void debuggedProcess_ModulesAdded(object sender, ModuleEventArgs e) { foreach (var bp in debugger.Breakpoints) { var breakpoint = bp as ILBreakpoint; if (breakpoint != null && breakpoint.MethodKey.IsSameModule(e.Module.FullPath)) breakpoint.SetBreakpoint(e.Module); } }