diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/manager/DbgManager.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/manager/DbgManager.java index d0548ffa99..bf7ec1d309 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/manager/DbgManager.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/manager/DbgManager.java @@ -371,4 +371,6 @@ public interface DbgManager extends AutoCloseable, DbgBreakpointInsertions { DebugEventInformation getLastEventInformation(); + DbgSession getSessionComputeIfAbsent(DebugSessionId debugSessionId, boolean b); + } diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelImpl.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelImpl.java index f7a748e962..c6a951c951 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelImpl.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelImpl.java @@ -25,8 +25,7 @@ import org.apache.commons.lang3.exception.ExceptionUtils; import agent.dbgeng.dbgeng.DebugSessionId; import agent.dbgeng.manager.DbgManager; -import agent.dbgeng.manager.impl.DbgManagerImpl; -import agent.dbgeng.manager.impl.DbgSessionImpl; +import agent.dbgeng.manager.DbgSession; import agent.dbgeng.model.AbstractDbgModel; import agent.dbgeng.model.iface2.*; import ghidra.async.AsyncUtils; @@ -54,7 +53,7 @@ public class DbgModelImpl extends AbstractDbgModel implements DebuggerObjectMode protected final AddressFactory addressFactory = new DefaultAddressFactory(new AddressSpace[] { space }); - protected final DbgManagerImpl dbg; + protected final DbgManager dbg; protected final DbgModelTargetRootImpl root; protected final DbgModelTargetSessionImpl session; @@ -64,11 +63,11 @@ public class DbgModelImpl extends AbstractDbgModel implements DebuggerObjectMode private boolean suppressDescent = false; public DbgModelImpl() { - this.dbg = (DbgManagerImpl) DbgManager.newInstance(); + this.dbg = DbgManager.newInstance(); //System.out.println(XmlSchemaContext.serialize(SCHEMA_CTX)); this.root = new DbgModelTargetRootImpl(this, ROOT_SCHEMA); this.completedRoot = CompletableFuture.completedFuture(root); - DbgSessionImpl s = dbg.getSessionComputeIfAbsent(new DebugSessionId(0), true); + DbgSession s = dbg.getSessionComputeIfAbsent(new DebugSessionId(0), true); DbgModelTargetSessionContainer sessions = root.sessions; this.session = (DbgModelTargetSessionImpl) sessions.getTargetSession(s); addModelRoot(root); @@ -121,8 +120,8 @@ public class DbgModelImpl extends AbstractDbgModel implements DebuggerObjectMode } @Override - public DbgManagerImpl getManager() { - return (DbgManagerImpl) dbg; + public DbgManager getManager() { + return dbg; } @Override @@ -181,6 +180,7 @@ public class DbgModelImpl extends AbstractDbgModel implements DebuggerObjectMode }); } + @Override public boolean isSuppressDescent() { return suppressDescent; } diff --git a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetTraceOrDumpConnectorImpl.java b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetTraceOrDumpConnectorImpl.java index 2659d36852..b1ce758899 100644 --- a/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetTraceOrDumpConnectorImpl.java +++ b/Ghidra/Debug/Debugger-agent-dbgeng/src/main/java/agent/dbgeng/model/impl/DbgModelTargetTraceOrDumpConnectorImpl.java @@ -67,12 +67,8 @@ public class DbgModelTargetTraceOrDumpConnectorImpl extends DbgModelTargetObject true, ".opendump", "Cmd", "native loader command"); ParameterDescription p2 = ParameterDescription.create(String.class, "TraceOrDump", true, "", "File", "trace or dump to be loaded"); - ParameterDescription p3 = ParameterDescription.create(Boolean.class, - "UseQueryVirtual", false, true, "QueryVirtual", "use QueryVirtual (vs. !address)"); map.put("CommandLine", p1); map.put("TraceOrDump", p2); - // For the moment, we'll leave this out (deadlocks the GUI) - //map.put("UseQueryVirtual", p3); return map; } diff --git a/Ghidra/Debug/Debugger-agent-dbgmodel/src/main/java/agent/dbgmodel/impl/dbgmodel/main/KeyEnumeratorImpl.java b/Ghidra/Debug/Debugger-agent-dbgmodel/src/main/java/agent/dbgmodel/impl/dbgmodel/main/KeyEnumeratorImpl.java index 287582b820..c4cf51a2fd 100644 --- a/Ghidra/Debug/Debugger-agent-dbgmodel/src/main/java/agent/dbgmodel/impl/dbgmodel/main/KeyEnumeratorImpl.java +++ b/Ghidra/Debug/Debugger-agent-dbgmodel/src/main/java/agent/dbgmodel/impl/dbgmodel/main/KeyEnumeratorImpl.java @@ -65,7 +65,7 @@ public class KeyEnumeratorImpl implements KeyEnumeratorInternal { } COMUtils.checkRC(hr); } - catch (RuntimeException e) { + catch (Error e) { Msg.error(this, e.getMessage()); } diff --git a/Ghidra/Debug/Debugger-agent-dbgmodel/src/main/java/agent/dbgmodel/model/impl/DbgModel2Impl.java b/Ghidra/Debug/Debugger-agent-dbgmodel/src/main/java/agent/dbgmodel/model/impl/DbgModel2Impl.java index bce8bff328..51ede57815 100644 --- a/Ghidra/Debug/Debugger-agent-dbgmodel/src/main/java/agent/dbgmodel/model/impl/DbgModel2Impl.java +++ b/Ghidra/Debug/Debugger-agent-dbgmodel/src/main/java/agent/dbgmodel/model/impl/DbgModel2Impl.java @@ -200,6 +200,7 @@ public class DbgModel2Impl extends AbstractDbgModel }); } + @Override public boolean isSuppressDescent() { return suppressDescent; } 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 5f6f0371ef..ee652cabd3 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 @@ -1007,6 +1007,7 @@ public class DebuggerObjectsProvider extends ComponentProviderAdapter groupTargetIndex++; + /* actionSuppressDescent = new ToggleActionBuilder("Automatically populate containers", plugin.getName()) .menuPath("Maintenance","&Auto-populate") .menuGroup(DebuggerResources.GROUP_TARGET, "M" + groupTargetIndex) @@ -1015,6 +1016,7 @@ public class DebuggerObjectsProvider extends ComponentProviderAdapter .selected(isUpdateWhileRunning()) .enabled(true) .buildAndInstallLocal(this); + */ groupTargetIndex = 0; @@ -1448,6 +1450,7 @@ public class DebuggerObjectsProvider extends ComponentProviderAdapter refresh(""); } + /* public void performToggleAutoPopulateContainers(ActionContext context) { suppressDescent = !actionSuppressDescent.isSelected(); if (currentModel != null) { @@ -1455,6 +1458,7 @@ public class DebuggerObjectsProvider extends ComponentProviderAdapter } refresh(""); } + */ protected void performAction(ActionContext context, boolean fallbackRoot, Class cls, diff --git a/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/DebuggerObjectModel.java b/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/DebuggerObjectModel.java index 5850bab8b4..b6e3d0de4e 100644 --- a/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/DebuggerObjectModel.java +++ b/Ghidra/Debug/Framework-Debugging/src/main/java/ghidra/dbg/DebuggerObjectModel.java @@ -581,11 +581,4 @@ public interface DebuggerObjectModel { */ CompletableFuture flushEvents(); - /** - * If the model permits, suppress automatic descent into containers - */ - default void setSuppressDescent(boolean suppressDescent) { - // Do nothing by default - } - }