public static bool GoToIL(IModuleIdProvider moduleIdProvider, IDocumentTabService documentTabService, IDsDocument document, uint token, uint ilOffset, bool newTab) { if (document == null) return false; var method = document.ModuleDef.ResolveToken(token) as MethodDef; if (method == null) return false; var modId = moduleIdProvider.Create(method.Module); var key = new ModuleTokenId(modId, method.MDToken); bool found = documentTabService.DocumentTreeView.FindNode(method.Module) != null; if (found) { documentTabService.FollowReference(method, newTab, true, e => { Debug.Assert(e.Tab.UIContext is IDocumentViewer); if (e.Success && !e.HasMovedCaret) { MoveCaretTo(e.Tab.UIContext as IDocumentViewer, key, ilOffset); e.HasMovedCaret = true; } }); return true; } Dispatcher.CurrentDispatcher.BeginInvoke(DispatcherPriority.Background, new Action(() => { documentTabService.FollowReference(method, newTab, true, e => { Debug.Assert(e.Tab.UIContext is IDocumentViewer); if (e.Success && !e.HasMovedCaret) { MoveCaretTo(e.Tab.UIContext as IDocumentViewer, key, ilOffset); e.HasMovedCaret = true; } }); })); return true; }
ModuleLoader(Lazy<ITheDebugger> theDebugger, IDebuggerSettings debuggerSettings, IDsDocumentService documentService, Lazy<IInMemoryModuleService> inMemoryModuleService, IModuleIdProvider moduleIdProvider) { this.theDebugger = theDebugger; this.debuggerSettings = debuggerSettings; this.documentService = documentService; this.inMemoryModuleService = inMemoryModuleService; this.moduleIdProvider = moduleIdProvider; }
GoToSourceNewTabBreakpointCtxMenuCommand(Lazy <IBreakpointsContent> breakpointsContent, Lazy <IModuleLoader> moduleLoader, IDocumentTabService documentTabService, IModuleIdProvider moduleIdProvider) : base(breakpointsContent) { this.moduleLoader = moduleLoader; this.documentTabService = documentTabService; this.moduleIdProvider = moduleIdProvider; }
GoToStringCtxMenuCommand(Lazy <IStringsAnalyzerContent> stringAnalyzerContent, IDocumentTabService documentTabService, IModuleIdProvider moduleIdProvider) : base(stringAnalyzerContent) { //this.moduleLoader = moduleLoader; this.documentTabService = documentTabService; this.moduleIdProvider = moduleIdProvider; }
GoToSourceCallStackCtxMenuCommand(Lazy <ITheDebugger> theDebugger, Lazy <ICallStackContent> callStackContent, IDocumentTabService documentTabService, Lazy <IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) : base(theDebugger, callStackContent) { this.documentTabService = documentTabService; this.moduleLoader = moduleLoader; this.moduleIdProvider = moduleIdProvider; }
GoToSourceCallStackCtxMenuCommand(Lazy <ITheDebugger> theDebugger, Lazy <ICallStackContent> callStackContent, IFileTabManager fileTabManager, Lazy <IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) : base(theDebugger, callStackContent) { this.fileTabManager = fileTabManager; this.moduleLoader = moduleLoader; this.moduleIdProvider = moduleIdProvider; }
GoToSourceNewTabBreakpointCtxMenuCommand(Lazy <IBreakpointsContent> breakpointsContent, Lazy <IModuleLoader> moduleLoader, IFileTabManager fileTabManager, IModuleIdProvider moduleIdProvider) : base(breakpointsContent) { this.moduleLoader = moduleLoader; this.fileTabManager = fileTabManager; this.moduleIdProvider = moduleIdProvider; }
SwitchToThreadNewTabThreadsCtxMenuCommand(Lazy <ITheDebugger> theDebugger, Lazy <IThreadsContent> threadsContent, Lazy <IStackFrameManager> stackFrameManager, IFileTabManager fileTabManager, Lazy <IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) : base(theDebugger, threadsContent) { this.stackFrameManager = stackFrameManager; this.fileTabManager = fileTabManager; this.moduleLoader = moduleLoader; this.moduleIdProvider = moduleIdProvider; }
internal static void GoTo(IModuleIdProvider moduleIdProvider, Lazy <IStackFrameManager> stackFrameManager, IFileTabManager fileTabManager, Lazy <IModuleLoader> moduleLoader, ThreadsCtxMenuContext context, bool newTab) { if (context.SelectedItems.Length == 0) { return; } GoTo(moduleIdProvider, fileTabManager, moduleLoader.Value, stackFrameManager.Value, context.SelectedItems[0], newTab); }
public static bool GoTo(IModuleIdProvider moduleIdProvider, IDocumentTabService documentTabService, IModuleLoader moduleLoader, CorFrame frame, bool newTab) { if (GoToIL(moduleIdProvider, documentTabService, moduleLoader, frame, newTab)) return true; //TODO: eg. native frame or internal frame return false; }
SwitchToFrameNewTabCallStackCtxMenuCommand(Lazy <ITheDebugger> theDebugger, Lazy <ICallStackContent> callStackContent, Lazy <IStackFrameManager> stackFrameManager, IFileTabManager fileTabManager, Lazy <IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) : base(theDebugger, callStackContent) { this.stackFrameManager = stackFrameManager; this.fileTabManager = fileTabManager; this.moduleLoader = moduleLoader; this.moduleIdProvider = moduleIdProvider; }
internal static void Execute(IModuleIdProvider moduleIdProvider, IStackFrameManager stackFrameManager, IFileTabManager fileTabManager, IModuleLoader moduleLoader, CallStackFrameVM vm, bool newTab) { if (vm != null) { stackFrameManager.SelectedFrameNumber = vm.Index; FrameUtils.GoTo(moduleIdProvider, fileTabManager, moduleLoader, vm.Frame, newTab); } }
ModuleLoader(Lazy <ITheDebugger> theDebugger, IDebuggerSettings debuggerSettings, IDsDocumentService documentService, Lazy <IInMemoryModuleService> inMemoryModuleService, IModuleIdProvider moduleIdProvider) { this.theDebugger = theDebugger; this.debuggerSettings = debuggerSettings; this.documentService = documentService; this.inMemoryModuleService = inMemoryModuleService; this.moduleIdProvider = moduleIdProvider; }
internal static void GoTo(IModuleIdProvider moduleIdProvider, Lazy <IStackFrameService> stackFrameService, IDocumentTabService documentTabService, Lazy <IModuleLoader> moduleLoader, ThreadsCtxMenuContext context, bool newTab) { if (context.SelectedItems.Length == 0) { return; } GoTo(moduleIdProvider, documentTabService, moduleLoader.Value, stackFrameService.Value, context.SelectedItems[0], newTab); }
SwitchToFrameCallStackCtxMenuCommand(Lazy <ITheDebugger> theDebugger, Lazy <ICallStackContent> callStackContent, Lazy <IStackFrameService> stackFrameService, IDocumentTabService documentTabService, Lazy <IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) : base(theDebugger, callStackContent) { this.stackFrameService = stackFrameService; this.documentTabService = documentTabService; this.moduleLoader = moduleLoader; this.moduleIdProvider = moduleIdProvider; }
internal static void Execute(IModuleIdProvider moduleIdProvider, IStackFrameService stackFrameService, IDocumentTabService documentTabService, IModuleLoader moduleLoader, CallStackFrameVM vm, bool newTab) { if (vm != null) { stackFrameService.SelectedFrameNumber = vm.Index; FrameUtils.GoTo(moduleIdProvider, documentTabService, moduleLoader, vm.Frame, newTab); } }
SwitchToThreadNewTabThreadsCtxMenuCommand(Lazy <ITheDebugger> theDebugger, Lazy <IThreadsContent> threadsContent, Lazy <IStackFrameService> stackFrameService, IDocumentTabService documentTabService, Lazy <IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) : base(theDebugger, threadsContent) { this.stackFrameService = stackFrameService; this.documentTabService = documentTabService; this.moduleLoader = moduleLoader; this.moduleIdProvider = moduleIdProvider; }
ModuleLoader(Lazy <ITheDebugger> theDebugger, IDebuggerSettings debuggerSettings, IFileManager fileManager, Lazy <IInMemoryModuleManager> inMemoryModuleManager, IModuleIdProvider moduleIdProvider) { this.theDebugger = theDebugger; this.debuggerSettings = debuggerSettings; this.fileManager = fileManager; this.inMemoryModuleManager = inMemoryModuleManager; this.moduleIdProvider = moduleIdProvider; }
internal static void GoTo(IModuleIdProvider moduleIdProvider, IDocumentTabService documentTabService, IModuleLoader moduleLoader, IStackFrameService stackFrameService, ThreadVM vm, bool newTab) { if (vm == null) { return; } stackFrameService.SelectedThread = vm.Thread; FrameUtils.GoTo(moduleIdProvider, documentTabService, moduleLoader, vm.Thread.AllFrames.FirstOrDefault(f => f.IsILFrame), newTab); }
internal static void GoTo(IModuleIdProvider moduleIdProvider, IFileTabManager fileTabManager, IModuleLoader moduleLoader, IStackFrameManager stackFrameManager, ThreadVM vm, bool newTab) { if (vm == null) { return; } stackFrameManager.SelectedThread = vm.Thread; FrameUtils.GoTo(moduleIdProvider, fileTabManager, moduleLoader, vm.Thread.AllFrames.FirstOrDefault(f => f.IsILFrame), newTab); }
GlyphTextMarkerService(IModuleIdProvider moduleIdProvider, IThemeService themeService, IViewTagAggregatorFactoryService viewTagAggregatorFactoryService, IEditorFormatMapService editorFormatMapService, [ImportMany] IEnumerable <Lazy <IGlyphTextMarkerMouseProcessorProvider, IGlyphTextMarkerMouseProcessorProviderMetadata> > glyphTextMarkerMouseProcessorProviders) { this.moduleIdProvider = moduleIdProvider; ThemeService = themeService; ViewTagAggregatorFactoryService = viewTagAggregatorFactoryService; EditorFormatMapService = editorFormatMapService; glyphTextMarkers = new HashSet <IGlyphTextMarkerImpl>(); GlyphTextMarkerMouseProcessorProviders = Orderer.Order(glyphTextMarkerMouseProcessorProviders).ToArray(); }
public static bool GoToIL(IModuleIdProvider moduleIdProvider, IDocumentTabService documentTabService, IModuleLoader moduleLoader, CorFrame frame, bool newTab) { if (!CanGoToIL(frame)) return false; var func = frame.Function; if (func == null) return false; return DebugUtils.GoToIL(moduleIdProvider, documentTabService, moduleLoader.LoadModule(func.Module, canLoadDynFile: true, isAutoLoaded: true), frame.Token, frame.GetILOffset(moduleLoader), newTab); }
BreakpointsContent(IWpfCommandService wpfCommandService, Lazy<IBreakpointsVM> breakpointsVM, Lazy<IModuleLoader> moduleLoader, IDocumentTabService documentTabService, IModuleIdProvider moduleIdProvider) { breakpointsControl = new BreakpointsControl(); this.moduleLoader = moduleLoader; this.documentTabService = documentTabService; vmBreakpoints = breakpointsVM; this.moduleIdProvider = moduleIdProvider; wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_BREAKPOINTS_CONTROL, breakpointsControl); wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_BREAKPOINTS_LISTVIEW, breakpointsControl.ListView); }
BreakpointsContent(IWpfCommandService wpfCommandService, Lazy <IBreakpointsVM> breakpointsVM, Lazy <IModuleLoader> moduleLoader, IDocumentTabService documentTabService, IModuleIdProvider moduleIdProvider) { breakpointsControl = new BreakpointsControl(); this.moduleLoader = moduleLoader; this.documentTabService = documentTabService; vmBreakpoints = breakpointsVM; this.moduleIdProvider = moduleIdProvider; wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_BREAKPOINTS_CONTROL, breakpointsControl); wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_BREAKPOINTS_LISTVIEW, breakpointsControl.ListView); }
public static bool GoTo(IModuleIdProvider moduleIdProvider, IFileTabManager fileTabManager, IModuleLoader moduleLoader, CorFrame frame, bool newTab) { if (GoToIL(moduleIdProvider, fileTabManager, moduleLoader, frame, newTab)) { return(true); } //TODO: eg. native frame or internal frame return(false); }
public static bool GoTo(IModuleIdProvider moduleIdProvider, IDocumentTabService documentTabService, IModuleLoader moduleLoader, CorFrame frame, bool newTab) { if (GoToIL(moduleIdProvider, documentTabService, moduleLoader, frame, newTab)) { return(true); } //TODO: eg. native frame or internal frame return(false); }
BreakpointsContent(IWpfCommandManager wpfCommandManager, Lazy <IBreakpointsVM> breakpointsVM, Lazy <IModuleLoader> moduleLoader, IFileTabManager fileTabManager, IModuleIdProvider moduleIdProvider) { this.breakpointsControl = new BreakpointsControl(); this.moduleLoader = moduleLoader; this.fileTabManager = fileTabManager; this.vmBreakpoints = breakpointsVM; this.moduleIdProvider = moduleIdProvider; wpfCommandManager.Add(ControlConstants.GUID_DEBUGGER_BREAKPOINTS_CONTROL, breakpointsControl); wpfCommandManager.Add(ControlConstants.GUID_DEBUGGER_BREAKPOINTS_LISTVIEW, breakpointsControl.ListView); }
CallStackContent(IWpfCommandService wpfCommandService, ICallStackVM callStackVM, Lazy<IStackFrameService> stackFrameService, IDocumentTabService documentTabService, Lazy<IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) { callStackControl = new CallStackControl(); vmCallStack = callStackVM; this.stackFrameService = stackFrameService; this.documentTabService = documentTabService; this.moduleLoader = moduleLoader; this.moduleIdProvider = moduleIdProvider; callStackControl.DataContext = vmCallStack; callStackControl.CallStackListViewDoubleClick += CallStackControl_CallStackListViewDoubleClick; wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_CALLSTACK_CONTROL, callStackControl); wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_CALLSTACK_LISTVIEW, callStackControl.ListView); }
ThreadsContent(IWpfCommandService wpfCommandService, IThreadsVM threadsVM, Lazy<IStackFrameService> stackFrameService, IDocumentTabService documentTabService, Lazy<IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) { this.stackFrameService = stackFrameService; this.documentTabService = documentTabService; this.moduleLoader = moduleLoader; threadsControl = new ThreadsControl(); vmThreads = threadsVM; this.moduleIdProvider = moduleIdProvider; threadsControl.DataContext = vmThreads; threadsControl.ThreadsListViewDoubleClick += ThreadsControl_ThreadsListViewDoubleClick; wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_THREADS_CONTROL, threadsControl); wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_THREADS_LISTVIEW, threadsControl.ListView); }
CallStackContent(IWpfCommandService wpfCommandService, ICallStackVM callStackVM, Lazy <IStackFrameService> stackFrameService, IDocumentTabService documentTabService, Lazy <IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) { this.callStackControl = new CallStackControl(); this.vmCallStack = callStackVM; this.stackFrameService = stackFrameService; this.documentTabService = documentTabService; this.moduleLoader = moduleLoader; this.moduleIdProvider = moduleIdProvider; this.callStackControl.DataContext = this.vmCallStack; this.callStackControl.CallStackListViewDoubleClick += CallStackControl_CallStackListViewDoubleClick; wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_CALLSTACK_CONTROL, callStackControl); wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_CALLSTACK_LISTVIEW, callStackControl.ListView); }
internal static void GoTo(IModuleIdProvider moduleIdProvider, IFileTabManager fileTabManager, Lazy <IModuleLoader> moduleLoader, BreakpointVM vm, bool newTab) { if (vm == null) { return; } var ilbp = vm.Breakpoint as ILCodeBreakpoint; if (ilbp == null) { return; } DebugUtils.GoToIL(moduleIdProvider, fileTabManager, moduleLoader.Value, ilbp.MethodToken.Module, ilbp.MethodToken.Token, ilbp.ILOffset, newTab); }
ThreadsContent(IWpfCommandService wpfCommandService, IThreadsVM threadsVM, Lazy <IStackFrameService> stackFrameService, IDocumentTabService documentTabService, Lazy <IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) { this.stackFrameService = stackFrameService; this.documentTabService = documentTabService; this.moduleLoader = moduleLoader; threadsControl = new ThreadsControl(); vmThreads = threadsVM; this.moduleIdProvider = moduleIdProvider; threadsControl.DataContext = vmThreads; threadsControl.ThreadsListViewDoubleClick += ThreadsControl_ThreadsListViewDoubleClick; wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_THREADS_CONTROL, threadsControl); wpfCommandService.Add(ControlConstants.GUID_DEBUGGER_THREADS_LISTVIEW, threadsControl.ListView); }
// This is supposed to take us to the whatever string we are inspecting into the respective assembly. internal static void GoTo(IModuleIdProvider moduleIdProvider, IDocumentTabService documentTabService, ToolWindowVm.StringAnalyzerData items, bool newTab) { if (items == null) { return; } var ilbp = items as ToolWindowVm.StringAnalyzerData; if (ilbp == null) { return; } ContextUtils.GoToIL(moduleIdProvider, documentTabService, ilbp.ModuleID, uint.Parse(ilbp.MdToken), uint.Parse(ilbp.IlOffset), newTab); }
ThreadsContent(IWpfCommandManager wpfCommandManager, IThreadsVM threadsVM, IThemeManager themeManager, Lazy <IStackFrameManager> stackFrameManager, IFileTabManager fileTabManager, Lazy <IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) { this.stackFrameManager = stackFrameManager; this.fileTabManager = fileTabManager; this.moduleLoader = moduleLoader; this.threadsControl = new ThreadsControl(); this.vmThreads = threadsVM; this.moduleIdProvider = moduleIdProvider; this.threadsControl.DataContext = this.vmThreads; this.threadsControl.ThreadsListViewDoubleClick += ThreadsControl_ThreadsListViewDoubleClick; themeManager.ThemeChanged += ThemeManager_ThemeChanged; wpfCommandManager.Add(CommandConstants.GUID_DEBUGGER_THREADS_CONTROL, threadsControl); wpfCommandManager.Add(CommandConstants.GUID_DEBUGGER_THREADS_LISTVIEW, threadsControl.ListView); }
BreakpointManager(IFileTabManager fileTabManager, ITheDebugger theDebugger, IMessageBoxManager messageBoxManager, IModuleIdProvider moduleIdProvider, [ImportMany] IEnumerable <Lazy <IBreakpointListener> > breakpointListeners) { this.fileTabManager = fileTabManager; this.theDebugger = theDebugger; this.messageBoxManager = messageBoxManager; this.moduleIdProvider = moduleIdProvider; this.breakpointListeners = breakpointListeners.ToArray(); fileTabManager.FileCollectionChanged += FileTabManager_FileCollectionChanged; theDebugger.OnProcessStateChanged += TheDebugger_OnProcessStateChanged; if (theDebugger.IsDebugging) { AddDebuggerBreakpoints(); } }
CallStackContent(IWpfCommandManager wpfCommandManager, IThemeManager themeManager, ICallStackVM callStackVM, Lazy <IStackFrameManager> stackFrameManager, IFileTabManager fileTabManager, Lazy <IModuleLoader> moduleLoader, IModuleIdProvider moduleIdProvider) { this.callStackControl = new CallStackControl(); this.vmCallStack = callStackVM; this.stackFrameManager = stackFrameManager; this.fileTabManager = fileTabManager; this.moduleLoader = moduleLoader; this.moduleIdProvider = moduleIdProvider; this.callStackControl.DataContext = this.vmCallStack; this.callStackControl.CallStackListViewDoubleClick += CallStackControl_CallStackListViewDoubleClick; themeManager.ThemeChanged += ThemeManager_ThemeChanged; wpfCommandManager.Add(ControlConstants.GUID_DEBUGGER_CALLSTACK_CONTROL, callStackControl); wpfCommandManager.Add(ControlConstants.GUID_DEBUGGER_CALLSTACK_LISTVIEW, callStackControl.ListView); }
BreakpointService(IDocumentTabService documentTabService, ITheDebugger theDebugger, IMessageBoxService messageBoxService, IModuleIdProvider moduleIdProvider, [ImportMany] IEnumerable <Lazy <IBreakpointListener> > breakpointListeners) { this.documentTabService = documentTabService; this.theDebugger = theDebugger; this.messageBoxService = messageBoxService; this.moduleIdProvider = moduleIdProvider; this.breakpointListeners = breakpointListeners.ToArray(); documentTabService.DocumentCollectionChanged += DocumentTabService_FileCollectionChanged; theDebugger.OnProcessStateChanged += TheDebugger_OnProcessStateChanged; if (theDebugger.IsDebugging) { AddDebuggerBreakpoints(); } }
public static void GoToIL(IModuleIdProvider moduleIdProvider, IDocumentTabService documentTabService, IModuleLoader moduleLoader, ModuleId moduleId, uint token, uint ilOffset, bool newTab) { var file = moduleLoader.LoadModule(moduleId, canLoadDynFile: true, diskFileOk: false, isAutoLoaded: true); GoToIL(moduleIdProvider, documentTabService, file, token, ilOffset, newTab); }
GlyphTextMarkerServiceDocumentViewerListener(IGlyphTextMarkerService glyphTextMarkerService, IModuleIdProvider moduleIdProvider) { this.glyphTextMarkerService = glyphTextMarkerService; this.moduleIdProvider = moduleIdProvider; }
DebugService(IAppWindow appWindow, IDocumentTabService documentTabService, IMessageBoxService messageBoxService, IDebuggerSettings debuggerSettings, ITheDebugger theDebugger, IStackFrameService stackFrameService, Lazy<IModuleLoader> moduleLoader, Lazy<IInMemoryModuleService> inMemoryModuleService, IModuleIdProvider moduleIdProvider, IClassificationFormatMapService classificationFormatMapService, ITextElementProvider textElementProvider) { this.appWindow = appWindow; this.documentTabService = documentTabService; this.messageBoxService = messageBoxService; DebuggerSettings = debuggerSettings; this.theDebugger = theDebugger; StackFrameService = stackFrameService; this.moduleLoader = moduleLoader; this.inMemoryModuleService = inMemoryModuleService; this.moduleIdProvider = moduleIdProvider; this.classificationFormatMapService = classificationFormatMapService; this.textElementProvider = textElementProvider; stackFrameService.PropertyChanged += StackFrameService_PropertyChanged; theDebugger.ProcessRunning += TheDebugger_ProcessRunning; theDebugger.OnProcessStateChanged += TheDebugger_OnProcessStateChanged; appWindow.MainWindowClosing += AppWindow_MainWindowClosing; debuggerSettings.PropertyChanged += DebuggerSettings_PropertyChanged; }
BreakpointService(IDocumentTabService documentTabService, ITheDebugger theDebugger, IMessageBoxService messageBoxService, IModuleIdProvider moduleIdProvider, [ImportMany] IEnumerable<Lazy<IBreakpointListener>> breakpointListeners) { this.documentTabService = documentTabService; this.theDebugger = theDebugger; this.messageBoxService = messageBoxService; this.moduleIdProvider = moduleIdProvider; this.breakpointListeners = breakpointListeners.ToArray(); documentTabService.DocumentCollectionChanged += DocumentTabService_FileCollectionChanged; theDebugger.OnProcessStateChanged += TheDebugger_OnProcessStateChanged; if (theDebugger.IsDebugging) AddDebuggerBreakpoints(); }