public override string GetHeader(ModulesCtxMenuContext context) { var files = GetSavableFiles(context.SelectedItems); return(files.Length > 1 ? string.Format(dnSpy_Debugger_Resources.SaveModulesCommand, files.Length) : dnSpy_Debugger_Resources.SaveModuleCommand); }
protected override void Execute(ModulesCtxMenuContext context) { if (context.SelectedItems.Length > 0) { Clipboard.SetText(context.SelectedItems[0].Module.Name); } }
protected override void Execute(ModulesCtxMenuContext context) { if (context.SelectedItems.Length > 0) { OpenContainingFolder(context.SelectedItems[0].Module.Name); } }
internal static void ExecuteInternal(ModulesCtxMenuContext context, bool newTab) { if (context == null || context.SelectedItems.Length == 0) { return; } ExecuteInternal(context.SelectedItems[0], newTab); }
public override string GetHeader(ModulesCtxMenuContext context) { if (context.SelectedItems.Length <= 1) { return(dnSpy_Debugger_Resources.LoadModulesCommand); } return(string.Format(dnSpy_Debugger_Resources.LoadXModulesCommand, context.SelectedItems.Length)); }
public override void Execute(ModulesCtxMenuContext context) { var vm = GetModule(context); if (vm != null) { memoryWindowManager.Value.Show(vm.Module.Address, vm.Module.Size, windowIndex); } }
protected override void Execute(ModulesCtxMenuContext context) { var vm = GetModule(context); if (vm != null) { MemoryUtils.ShowInMemoryWindow(windowNumber, vm.Module.Address, vm.Module.Size); } }
public override void Execute(ModulesCtxMenuContext context) { var vm = ShowInMemoryWindowModulesCtxMenuCommand.GetModule(context); if (vm != null) { memoryWindowService.Value.Show(vm.Module.Address, vm.Module.Size); } }
public override void Execute(ModulesCtxMenuContext context) { if (context.SelectedItems.Length > 0) { try { Clipboard.SetText(context.SelectedItems[0].Module.Name); } catch (ExternalException) { } } }
static bool CanGoToModule(ModulesCtxMenuContext context) { if (context == null || context.SelectedItems.Length == 0) { return(false); } var vm = context.SelectedItems[0]; return(!vm.Module.IsDynamic && !vm.Module.IsInMemory); }
internal static bool CanGoToModule(ModulesCtxMenuContext context) { if (context == null || context.SelectedItems.Length == 0) { return(false); } var vm = context.SelectedItems[0]; //TODO: Support dynamic and in-memory modules return(!vm.Module.IsDynamic && !vm.Module.IsInMemory); }
internal static ModuleVM GetModule(ModulesCtxMenuContext context) { if (context.SelectedItems.Length != 1) { return(null); } var vm = context.SelectedItems[0]; if (vm.Module.Address == 0 || vm.Module.Size == 0) { return(null); } return(vm); }
public override void Execute(ModulesCtxMenuContext context) { var vm = GetModule(context); if (vm != null) { var start = new HexPosition(vm.Module.Address); var end = start + vm.Module.Size; Debug.Assert(end <= HexPosition.MaxEndPosition); if (end <= HexPosition.MaxEndPosition) { memoryWindowService.Value.Show(HexSpan.FromBounds(start, end), windowIndex); } } }
protected override void Initialize(ModulesCtxMenuContext context, MenuItem menuItem) { foreach (var tuple in subCmds) { var mi = new MenuItem { Command = tuple.Item1, Header = tuple.Item2, }; if (!string.IsNullOrEmpty(tuple.Item3)) { mi.InputGestureText = tuple.Item3; } MainWindow.CreateMenuItemImage(mi, this, "MemoryWindow", BackgroundType.ContextMenuItem); menuItem.Items.Add(mi); } }
public override void Execute(ModulesCtxMenuContext context) { bool canShowDlgBox = true; foreach (var vm in context.SelectedItems) { var mod = vm.Module; bool res = GoToModuleModulesCtxMenuCommand.ShowErrorIfDynamic(inMemoryModuleManager, mod, canShowDlgBox); if (!res) { canShowDlgBox = false; } if (res) { moduleLoader.Value.LoadModule(vm.Module, canLoadDynFile: true, isAutoLoaded: false); } } }
public override void Execute(ModulesCtxMenuContext context) { var output = new StringBuilderTextColorOutput(); foreach (var vm in context.SelectedItems) { var printer = new ModulePrinter(output, debuggerSettings.UseHexadecimal, theDebugger.Value.Debugger); printer.WriteName(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WriteOptimized(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WriteDynamic(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WriteInMemory(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WriteOrder(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WriteVersion(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WriteTimestamp(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WriteAddress(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WriteProcess(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WriteAppDomain(vm); output.Write(BoxedTextColor.Text, "\t"); printer.WritePath(vm); output.WriteLine(); } var s = output.ToString(); if (s.Length > 0) { try { Clipboard.SetText(s); } catch (ExternalException) { } } }
public override void Execute(ModulesCtxMenuContext context) { var output = new NoSyntaxHighlightOutput(); foreach (var vm in context.SelectedItems) { var printer = new ModulePrinter(output, debuggerSettings.UseHexadecimal, theDebugger.Value.Debugger); printer.WriteName(vm); output.Write("\t", TextTokenKind.Text); printer.WriteOptimized(vm); output.Write("\t", TextTokenKind.Text); printer.WriteDynamic(vm); output.Write("\t", TextTokenKind.Text); printer.WriteInMemory(vm); output.Write("\t", TextTokenKind.Text); printer.WriteOrder(vm); output.Write("\t", TextTokenKind.Text); printer.WriteVersion(vm); output.Write("\t", TextTokenKind.Text); printer.WriteTimestamp(vm); output.Write("\t", TextTokenKind.Text); printer.WriteAddress(vm); output.Write("\t", TextTokenKind.Text); printer.WriteProcess(vm); output.Write("\t", TextTokenKind.Text); printer.WriteAppDomain(vm); output.Write("\t", TextTokenKind.Text); printer.WritePath(vm); output.WriteLine(); } var s = output.ToString(); if (s.Length > 0) { Clipboard.SetText(s); } }
protected override void Execute(ModulesCtxMenuContext context) { var output = new PlainTextOutput(); foreach (var vm in context.SelectedItems) { var printer = new ModulePrinter(output, DebuggerSettings.Instance.UseHexadecimal); printer.WriteName(vm); output.Write('\t', TextTokenType.Text); printer.WriteOptimized(vm); output.Write('\t', TextTokenType.Text); printer.WriteDynamic(vm); output.Write('\t', TextTokenType.Text); printer.WriteInMemory(vm); output.Write('\t', TextTokenType.Text); printer.WriteOrder(vm); output.Write('\t', TextTokenType.Text); printer.WriteVersion(vm); output.Write('\t', TextTokenType.Text); printer.WriteTimestamp(vm); output.Write('\t', TextTokenType.Text); printer.WriteAddress(vm); output.Write('\t', TextTokenType.Text); printer.WriteProcess(vm); output.Write('\t', TextTokenType.Text); printer.WriteAppDomain(vm); output.Write('\t', TextTokenType.Text); printer.WritePath(vm); output.WriteLine(); } var s = output.ToString(); if (s.Length > 0) { Clipboard.SetText(s); } }
protected override void Execute(ModulesCtxMenuContext context) { ExecuteInternal(context, false); }
protected override bool IsEnabled(ModulesCtxMenuContext context) { return(GetSavableFiles(context.SelectedItems).Length > 0); }
protected override void Initialize(ModulesCtxMenuContext context, MenuItem menuItem) { var files = GetSavableFiles(context.SelectedItems); menuItem.Header = files.Length > 1 ? string.Format("Save {0} Modules...", files.Length) : "Save Module..."; }
protected override bool IsEnabled(ModulesCtxMenuContext context) { return(context.SelectedItems.Length == 1); }
protected override void Execute(ModulesCtxMenuContext context) { Save(GetSavableFiles(context.SelectedItems)); }
protected override bool IsEnabled(ModulesCtxMenuContext context) { return(context.SelectedItems.Length == 1 && !context.SelectedItems[0].Module.IsDynamic && !context.SelectedItems[0].Module.IsInMemory); }
protected override void Execute(ModulesCtxMenuContext context) { ModulesControlCreator.ModulesControlInstance.listView.SelectAll(); }
protected override bool IsEnabled(ModulesCtxMenuContext context) { return(ModulesControlCreator.ModulesControlInstance.listView.Items.Count > 0); }
protected override void Initialize(ModulesCtxMenuContext context, MenuItem menuItem) { menuItem.IsChecked = DebuggerSettings.Instance.UseHexadecimal; }
protected override void Execute(ModulesCtxMenuContext context) { DebuggerSettings.Instance.UseHexadecimal = !DebuggerSettings.Instance.UseHexadecimal; }
protected override bool IsEnabled(ModulesCtxMenuContext context) { return(GoToModuleModulesCtxMenuCommand.CanGoToModule(context)); }
protected override void Execute(ModulesCtxMenuContext context) { GoToModuleModulesCtxMenuCommand.ExecuteInternal(context, true); }