From 23f50fdf109ac941ff6fc4fa80c3d1fd2434c3cd Mon Sep 17 00:00:00 2001 From: d-millar <33498836+d-millar@users.noreply.github.com> Date: Thu, 23 Sep 2021 15:56:24 +0000 Subject: [PATCH] GP-1288: config options done --- .../model/iface2/DbgModelTargetEventOption.java | 2 +- .../impl/DbgModelTargetContinuationOptionImpl.java | 2 +- .../dbgeng/model/impl/DbgModelTargetEventImpl.java | 13 +++++++++++-- .../model/impl/DbgModelTargetExceptionImpl.java | 13 +++++++++++-- .../impl/DbgModelTargetExecutionOptionImpl.java | 2 +- .../debug/gui/objects/DebuggerObjectsProvider.java | 8 +++++--- 6 files changed, 30 insertions(+), 10 deletions(-) diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/iface2/DbgModelTargetEventOption.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/iface2/DbgModelTargetEventOption.java index 4a552b363c..d601205443 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/iface2/DbgModelTargetEventOption.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/iface2/DbgModelTargetEventOption.java @@ -21,7 +21,7 @@ import ghidra.dbg.target.TargetTogglable; public interface DbgModelTargetEventOption extends DbgModelTargetObject, TargetTogglable { - int getOption(); + Integer getOption(); CompletableFuture setOption(int ordinal); diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetContinuationOptionImpl.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetContinuationOptionImpl.java index 15d87c027e..80b8c49e37 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetContinuationOptionImpl.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetContinuationOptionImpl.java @@ -66,7 +66,7 @@ public class DbgModelTargetContinuationOptionImpl extends DbgModelTargetObjectIm } @Override - public int getOption() { + public Integer getOption() { return optionCont.ordinal(); } diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetEventImpl.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetEventImpl.java index a691b05c61..65eaad2ff8 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetEventImpl.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetEventImpl.java @@ -138,6 +138,15 @@ public class DbgModelTargetEventImpl extends DbgModelTargetObjectImpl ParameterDescription.create(String.class, ARGUMENT_ATTRIBUTE_NAME, false, "", ARGUMENT_ATTRIBUTE_NAME, "filter argument"); map.put(ARGUMENT_ATTRIBUTE_NAME, argDesc); + ParameterDescription execDesc = + ParameterDescription.create(Integer.class, EXECUTE_OPTION_ATTRIBUTE_NAME, false, + execOption.getOption(), EXECUTE_OPTION_ATTRIBUTE_NAME, "filter execution option"); + map.put(EXECUTE_OPTION_ATTRIBUTE_NAME, execDesc); + ParameterDescription contDesc = + ParameterDescription.create(Integer.class, CONTINUE_OPTION_ATTRIBUTE_NAME, false, + contOption.getOption(), CONTINUE_OPTION_ATTRIBUTE_NAME, + "filter continuation option"); + map.put(CONTINUE_OPTION_ATTRIBUTE_NAME, contDesc); return map; } @@ -165,12 +174,12 @@ public class DbgModelTargetEventImpl extends DbgModelTargetObjectImpl throw new DebuggerIllegalArgumentException("Argument should be a string"); case EXECUTE_OPTION_ATTRIBUTE_NAME: if (value instanceof Integer) { - execOption.setOption((Integer) value); + return execOption.setOption((Integer) value); } throw new DebuggerIllegalArgumentException("Option should be numeric"); case CONTINUE_OPTION_ATTRIBUTE_NAME: if (value instanceof Integer) { - contOption.setOption((Integer) value); + return contOption.setOption((Integer) value); } throw new DebuggerIllegalArgumentException("Option should be numeric"); default: diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetExceptionImpl.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetExceptionImpl.java index c7faedd862..1c1b7dbe27 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetExceptionImpl.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetExceptionImpl.java @@ -125,6 +125,15 @@ public class DbgModelTargetExceptionImpl extends DbgModelTargetObjectImpl ParameterDescription.create(String.class, COMMAND2_ATTRIBUTE_NAME, false, "", COMMAND2_ATTRIBUTE_NAME, "filter 2nd-chance command"); map.put(COMMAND2_ATTRIBUTE_NAME, cmdDesc2); + ParameterDescription execDesc = + ParameterDescription.create(Integer.class, EXECUTE_OPTION_ATTRIBUTE_NAME, false, + execOption.getOption(), EXECUTE_OPTION_ATTRIBUTE_NAME, "filter execution option"); + map.put(EXECUTE_OPTION_ATTRIBUTE_NAME, execDesc); + ParameterDescription contDesc = + ParameterDescription.create(Integer.class, CONTINUE_OPTION_ATTRIBUTE_NAME, false, + contOption.getOption(), CONTINUE_OPTION_ATTRIBUTE_NAME, + "filter continuation option"); + map.put(CONTINUE_OPTION_ATTRIBUTE_NAME, contDesc); return map; } @@ -152,12 +161,12 @@ public class DbgModelTargetExceptionImpl extends DbgModelTargetObjectImpl throw new DebuggerIllegalArgumentException("Command should be a string"); case EXECUTE_OPTION_ATTRIBUTE_NAME: if (value instanceof Integer) { - execOption.setOption((Integer) value); + return execOption.setOption((Integer) value); } throw new DebuggerIllegalArgumentException("Option should be numeric"); case CONTINUE_OPTION_ATTRIBUTE_NAME: if (value instanceof Integer) { - contOption.setOption((Integer) value); + return contOption.setOption((Integer) value); } throw new DebuggerIllegalArgumentException("Option should be numeric"); default: diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetExecutionOptionImpl.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetExecutionOptionImpl.java index 15c95c9838..2ba750752b 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetExecutionOptionImpl.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetExecutionOptionImpl.java @@ -67,7 +67,7 @@ public class DbgModelTargetExecutionOptionImpl extends DbgModelTargetObjectImpl } @Override - public int getOption() { + public Integer getOption() { return optionExc.ordinal(); } diff --git a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java index 10004344d1..b111e37163 100644 --- a/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java +++ b/Ghidra/Debug/Debugger/src/main/java/ghidra/app/plugin/core/debug/gui/objects/DebuggerObjectsProvider.java @@ -338,7 +338,7 @@ public class DebuggerObjectsProvider extends ComponentProviderAdapter //attachDialogOld = new DebuggerAttachDialog(this); attachDialog = new DebuggerAttachDialog(this); breakpointDialog = new DebuggerBreakpointDialog(this); - configDialog = new DebuggerMethodInvocationDialog(tool, "Config", "Config", + configDialog = new DebuggerMethodInvocationDialog(tool, "Configuration", "Configure", DebuggerResources.ICON_LAUNCH); } @@ -1527,8 +1527,10 @@ public class DebuggerObjectsProvider extends ComponentProviderAdapter public void performConfigure(ActionContext context) { performAction(context, false, TargetConfigurable.class, configurable -> { Map args = configDialog.promptArguments(configurable.getConfigParameters()); - for (Entry entry : args.entrySet()) { - configurable.writeConfigurationOption(entry.getKey(), entry.getValue()); + if (args != null) { + for (Entry entry : args.entrySet()) { + configurable.writeConfigurationOption(entry.getKey(), entry.getValue()); + } } return AsyncUtils.NIL; }, "Couldn't configure");