Merge remote-tracking branch

'origin/GP-1852_d-millar_refresh_issues--SQUASHED' (Closes #4059)
This commit is contained in:
Ryan Kurtz 2022-03-25 02:02:33 -04:00
commit 3755d5c02d
3 changed files with 29 additions and 1 deletions

View file

@ -22,6 +22,7 @@ import java.util.stream.Collectors;
import agent.dbgeng.dbgeng.*;
import agent.dbgeng.manager.*;
import agent.dbgeng.manager.breakpoint.DbgBreakpointInfo;
import agent.dbgeng.model.iface1.DbgModelTargetConfigurable;
import agent.dbgeng.model.iface2.*;
import ghidra.async.AsyncUtils;
@ -96,6 +97,16 @@ public class DbgModelTargetProcessContainerImpl extends DbgModelTargetObjectImpl
}
}
@Override
public void breakpointHit(DbgBreakpointInfo info, DbgCause cause) {
DbgProcess proc = info.getProc();
DbgModelTargetProcess process = getTargetProcess(proc);
DbgModelTargetMemoryContainer memory = process.getMemory();
if (memory != null) {
memory.requestElements(true);
}
}
@Override
public void moduleLoaded(DbgProcess proc, DebugModuleInfo info, DbgCause cause) {
DbgModelTargetProcess process = getTargetProcess(proc);

View file

@ -258,4 +258,13 @@ public class DbgModelTargetProcessImpl extends DbgModelTargetObjectImpl
DISPLAY_ATTRIBUTE_NAME, getDisplay()//
), "Started");
}
@Override
public CompletableFuture<Void> resync(boolean refreshAttributes, boolean refreshElements) {
if (memory != null) {
memory.requestElements(true);
}
return super.resync(refreshAttributes, refreshElements);
}
}

View file

@ -105,7 +105,13 @@ public class ObjectTree implements ObjectPane {
}
}
currentSelectionPaths = selectionPaths;
currentExpandedPaths = tree.getExpandedPaths();
List<TreePath> paths = tree.getExpandedPaths();
if (currentExpandedPaths == null) {
currentExpandedPaths = paths;
}
else if (paths != null && (paths.size() >= currentExpandedPaths.size())) {
currentExpandedPaths = paths;
}
currentViewPosition = tree.getViewPosition();
restoreTreeStateManager.updateLater();
}
@ -133,6 +139,7 @@ public class ObjectTree implements ObjectPane {
if (!node.isExpanded()) {
//currentExpandedPaths = tree.getExpandedPaths();
node.markExpanded();
currentExpandedPaths = tree.getExpandedPaths();
}
}
}
@ -146,6 +153,7 @@ public class ObjectTree implements ObjectPane {
if (node.isExpanded()) {
//currentExpandedPaths = tree.getExpandedPaths();
node.markCollapsed();
currentExpandedPaths = tree.getExpandedPaths();
}
}
}