mirror of
https://github.com/NationalSecurityAgency/ghidra.git
synced 2025-10-05 02:39:44 +02:00
Merge remote-tracking branch
'origin/GP-1852_d-millar_refresh_issues--SQUASHED' (Closes #4059)
This commit is contained in:
commit
3755d5c02d
3 changed files with 29 additions and 1 deletions
|
@ -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);
|
||||
|
|
|
@ -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);
|
||||
}
|
||||
|
||||
}
|
||||
|
|
|
@ -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();
|
||||
}
|
||||
}
|
||||
}
|
||||
|
|
Loading…
Add table
Add a link
Reference in a new issue